91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0M
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: Matlab
  • 標簽: 其他??

資源簡介

huffman_normal.m

資源截圖

代碼片段和文件信息

clear
clc
N=255;
n=1920;
m=1080;
%?N=10;%小數據量測試用
%?n=4;%小數據量測試用
%?m=5;%小數據量測試用

%產生正態分布隨機數
E1=randn(nm);
E2=?mapminmax(E101);%將數據歸一化0-1之間
E3=round(0+N.*E2);
data=E3;
histogram(data)%繪制數據圖像
title(‘正態分布‘)

Num=2*(N+1)-1;%總節點數
P=zeros(1N+1);

for?i=0:N%計算每個隨機數的概率
????P(i+1)=length(find(data==i))/(n*m);
end
K=0:N;

%判斷概率的合理性
if?length(find(P<0))~=0
????errordlg(‘出現小于0的概率!‘)
end
if?abs(sum(P)-1)>10e-10
????errordlg(‘概率不具備完備性!‘)
end
[P1index]=sort(P‘descend‘);%對概率進行降序排列
K1=K(index);%將數據按照概率的降序進行排列

%完成對所有節點的初始化

for?i=1:Num
????nodes(i).parent=0;
????nodes(i).lchild=-1;
????nodes(i).rchild=-1;
????if?i<=N+1
????????nodes(i).weight=P1(i);
????????nodes(i).data=K1(i);
????else
???????nodes(i).weight=-1;
???????nodes(i).data=-2;?
????end???
end
index1=[00];
Min=[00];
q=0;

%構造哈夫曼樹

for?i=1:N
????for?k=1:2
????????M=10;
????????for?j=1:N+1+(i-1)
?????????????if(M>nodes(j).weight?||?nodes(j).weight==M)
????????????????M=nodes(j).weight;
????????????????index1(k)=j;
????????????else
????????????????M=M;
?????????????end
????????end
????????Min(k)=M;
????????nodes(index1(k)).weight=10;
????end
????if(index1(1)????????q=q+1;
????else
????????temp=index1(1);
????????index1(1)=index1(2);
????????index1(2)=temp;
????end
????nodes(N+1+i).weight=Min(1)+Min(2);
????nodes(N+1+i).lchild=index1(1);
????nodes(N+1+i).rchild=index1(2);
????nodes(index1(1)).parent=N+1+i;
????nodes(index1(2)).parent=N+1+i;
end
for?i=1:N+1
????code(i).data=0;
????code(i).Code=[];
end

%用來存放每個節點的編碼和原始數據

for?i=1:N+1
????code1(i).data=0;
????code1(i).Code=[];
????code1(i).P=[];
end

%獲取每個數據的編碼
for?i=1:N+1
????code(i).data=nodes(i).data;
????code1(i).P=P1(i);
????j=i;
????now=N+1;
????while(nodes(j).parent~=0)
????????k=nodes(j).parent;
????????if(nodes(k).lchild==j)
????????????code(i).Code(now)=0;
????????else
????????????code(i).Code(now)=1;
????????end
????????j=nodes(j).parent;
????????now=now-1;
????end
????for?l=now:N
????????code1(i).Code(l-(now-1))=code(

評論

共有 條評論