lzwdecode.m

来自「matlab写的lzw和huffman的编码」· M 代码 · 共 51 行

M
51
字号
function decode=lzwdecode(code,size,max)

%lzwdecode(code) used to  decode of lzw .the parameter code is a 1*m!
% and it return the lzw decode 1*n
curcode=[];        %识别序列

if nargin==2 
    max=255; 
end


for f=0:max
dictcode(f+1)={[f]}; %字典条目,注意实际数与下标相差一
end
n=max+1;


len=length(code);

curcode=code(1);
decode2(1)=dictcode(code(1)+1);     %解码输出

for d=2:len
    
 decode2(d)=dictcode(code(d)+1);     %解码输出 

 n=n+1;
 dictcode(n)={[dictcode{curcode+1} decode2{d}(1)]};  %向字典增加条目
curcode=code(d);  
end



code2=decode2{1}; 
len1=length(decode2);
 for g=2:len1  
code2=[code2 decode2{g}];     
 end 
hang=size(1);
lie=size(2);
len2=length(code2);

for g=1:len2
  
dc(ceil(g/lie),mod(g-1,lie)+1)=code2(g); 
end
decode=dc;   



⌨️ 快捷键说明

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