• 大小: 918B
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: Matlab
  • 标签: huffman  matlab  

资源简介

用matlab实现huffman编码。输入为一维行矩阵p,p为各符号的概率分布,概率和为1,各元素值为 正,输出H矩阵为对应每个符号概率的码字,L为输出码字的平均码长。Huffman .m运用典 型的IF和FOR控制流循环语句,该程序包括两个IF 控制流和5个FOR 循环结构。

资源截图

代码片段和文件信息

function [hl]=huffman(p) 
if (length(find(p<0))~=0) 
   error(‘Not a probnegative component‘); 
end 
if (abs(sum(p)-1)>10e-10) 
   error(‘Not a prob.vectorcomponent do not add to 1‘) 
end 
n=length(p); 
q=p; 
m=zeros(n-1n); 
for i=1:n-1 
   [ql]=sort(q); 
   m(i:)=[l(1:n-i+1)zeros(1i-1)]; 
   q=[q(1)+q(2)q(3:n)1]; 
end 
for i=1:n-1 
   c(i:)=blanks(n*n); 
end 
c(n-1n)=‘0‘; 
c(n-12*n)=‘1‘; 
for i=2:n-1 
   c(n-i1:n-1)=c(n

评论

共有 条评论