function [h,L]=huffman(p)
if (length(find(p<0))~=0)
error('Not a prob.vector');
end
if (abs(sum(p)-1)>10e-10)
error('Not a prob.vector')
end
n=length(p);
for i=1:n-1
for j=i:n
if p(i)<=p(j)
Q=p(i);p(i)=p(j);p(j)=Q;
end
end
end
disp('概率分布'),p
q=p;
m=zeros(n-1,n);
for i=1:n-1
[q,L]=sort(q);
m(i,:)=[L(1:n-i+1),zeros(1,i-1)];
q=[q(1)+q(2),q(3:n),1];
end
for i=1:n-1
c(i,:)=blanks(n*n);
end
c(n-1,n)='0'; c(n-1,2*n)='1';
for i=2:n-1
c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));
c(n-i,n)='0';
c(n-i,n+1:2*n-1)=c(n-i,1:n-1);
c(n-i,2*n)='1';
for j=1:i-1
c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));
end
end
for i=1:n
h(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);
LL(i)=length(find(abs(h(i,:))~=32));
end
L=sum(p.*LL);
MATLAB实现 哈夫曼 费诺编码
需积分: 18 145 浏览量
2009-11-17
20:33:43
上传
评论 4
收藏 1KB RAR 举报
huxiwu
- 粉丝: 0
- 资源: 9
最新资源
- 同态加密python.zip
- 基于Python的PCA人脸识别算法的原理及实现代码详解+源码+详细代码解析+开发文档+数据(毕业设计&课程设计&项目开发)
- Decision tree20240105(1).ipynb
- zuoyezuoyezuoye
- zuoyezuoyezuoye
- 机械设计电机转子装配设备sw22非常好的设计图纸100%好用.zip
- 作业作业作业作业作业作业
- xdotool.c
- RLMD鲁棒性局部均值分解信号分量可视化(Matlab完整源码和数据)
- Screenshot_2024-04-26-17-17-26-36_9d26c6446fd7bb8e41d99b6262b17def.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈