資源簡介
非常詳細的huffman編譯碼程序,統計文本內字符,進行編碼,自動生成編碼文本和譯碼后文本文件。并計算了壓縮比,統計了字符出現概率。
代碼片段和文件信息
%?Huffman?Code
%?By?Xu?Yao?2011-04-27
%?-------------------------------------------------
clc;
clear?all;
%?讀入原始文本文件,統計各字符出現的個數和概率。
fid=fopen(‘abc.txt‘‘r‘);
data=fread(fid);
fclose(fid);
total_number=length(data);??%?取文本中字符總數。
i=1;j=1;a=0;M=1:1;symbols=[];
for?ii=0:255
????a=0;
????i=1;
????while?i ????????if?data(i1)==ii
???????????a=a+1;???
???????end
???????i=i+1;
????end
????if?a~=0
???????M(j1)=a;??%?存儲文本中各種字符出現的個數。
???????symbols(j1)=char(ii);%?存儲文本中出現各類字符。
???????j=j+1;
????end
end
number_kind=length(symbols);?%?統計文本中有多少種字符。
%?----------------------------------------------------
%?統計文本里面所有字符出現的次數,并且計算每個字符出現的概率。
?j=1;p=1:1:number_kind;
while?j ????p(j1)=(M(j1)/total_number);
????fprintf(‘\n‘);
????fprintf(‘char=%
評論
共有 條評論