📄 main.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 + -