⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.m

📁 matlab 实现对整篇文章进行huffman压缩编码的源程序
💻 M
字号:
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%按路径读入文件(英文可以有空格标点),统计字符概率,调用huffman编码函数, %
%得出字符对应编码和平均信息量,计算编码效率                              %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
fid = fopen('D:\test.txt', 'r');        %读入文件
a= fread(fid);
fclose(fid);
len=length(a);                          %计算总长度
stora=zeros(2,256);                     %两行256列的全0向量
stora(1,:)=0:255;                       %第一行向量   
for k=1:len
    count=a(k);
    count=count+1;                      %ASIC码加一
    stora(2,count)=stora(2,count)+1;    %存入字符出现次数
end
num=0;
for k=1:256                             %统计有多少种字符出现
    if stora(2,k)~=0
        num=num+1;
    end
end
storb=zeros(2,num);                      %用于存放
ct=1;
for k=1:256                              %统计出现次数
    if stora(2,k)~=0
       storb(1,ct)=stora(1,k);           %放入字符码值
       storb(2,ct)=stora(2,k);           %存入对应概率
        ct=ct+1;
    end
end  
p = storb(2,:)/len;
[h,l]=huffman(p);                        %huffman编码
H=0;                                     %熵
for i=1:num
    H=H-p(i)*log(p(i))/log(2);
end
eff=H/l;                                 %编码效率
pchar=char(storb(1,:));
disp('文档中含有的个数为:');
disp(num);
disp('字符和对应的编码:');
disp(pchar);
disp(h);
disp('编码效率为'),disp(eff)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -