LZW编码算法matlab实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LZW编码算法,尝试使用matlab计算%encoderLZWformatlab%yu20170503clc;clear;closeall;%初始字典dic=cell(512,1);fori=1:256dic{i}={num2str(i)};end%输入字符串a,按空格拆分成A,注意加1对应范围1~256a=input('input:','s');a=deblank(a);A=regexp(a,'\s+','split');L=length(A);forj=1:LA{j}=num2str(str2num(A{j})+1);endA_t=A{1};%可识别序列B_t='test';%待验证词条d=256;%字典指针b=1;%输出指针B=cell(L,1);%输出初始output='';%输出初始j=1;forj=2:Lm=1;B_t=deblank([A_t,'',A{j}]);%合成待验证词条while(m=d)ifstrcmp(dic{m},B_t)A_t=B_t;breakelsem=m+1;endendwhile(m==d+1)d=d+1;dic{d}=B_t;q=1;forq=1:difstrcmp(dic{q},A_t)B{b}=num2str(q);b=b+1;endendA_t=A{j};endendforq=1:d%处理最后一个序列输出ifstrcmp(dic{q},A_t)B{b}=num2str(q);b=b+1;endendforn=1:(b-1)B{n}=num2str(str2num(B{n})-1);output=deblank([output,'',B{n}]);endoutput运算结果计算结果为3939126126256258260259257126LZW解码算法,使用matlab计算%decoderLZWformatlab%yu20170503clc;clear;closeall;%初始字典dic=cell(512,1);fori=1:256dic{i}={num2str(i)};end%输入字符串a,按空格拆分成A,注意加1对应范围1~256a=input('input:','s');a=deblank(a);A=regexp(a,'\s+','split');L=length(A);forj=1:LA{j}=num2str(str2num(A{j})+1);endB_t=A{1};%待验证词条d=256;%字典指针b=1;%输出指针B=cell(L,1);%输出初始output='';%输出初始j=1;B{b}=char(dic{str2num(A{j})});b=b+1;forj=2:LBB=char(dic{str2num(A{j})});B_d=regexp(BB,'\s+','split');%按空格拆分L_B=length(B_d);p=1;forp=1:L_BB{(b+p-1)}=B_d{p};m=1;B_t=deblank([char(B_t),'',char(B_d{p})]);%合成待验证词条while(m=d)ifstrcmp(dic{m},B_t)B_t=B_t;breakelsem=m+1;endendwhile(m==d+1)d=d+1;dic{d}=B_t;B_t=B_d{p};endendb=b+L_B;endforn=1:(b-L_B)B{n}=num2str(str2num(B{n})-1);output=deblank([output,'',B{n}]);endoutput运算结果运算结果为3939126126393912612639391261263939126126

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功