Info

This question is closed. Reopen it to edit or answer.

Can someone help me to implement this algorithm I have tried to but get errors

1 view (last 30 days)
Algorithm
Last code = 255
Series = First input character
While not end of while
character = next input character
if (series + character in code table)
series = series + character
else
output = code for series
add series and character to code table
series = character
end
end
output = code for series
Here is my code:
a=[39 39 126 126;39 39 126 126;39 39 126 126;39 39 126 126];
[f,g]=size(a);
total = f*g;
count=1;
imgchar= a(:)';
lastcode = 255;
tel = 1;
reeks = imgchar(1,1);
reekstr = num2str(reeks);
for j = 2:total
kodetabel{j}= strcat(' ');
reekskar{j}= strcat(',');
end
for i=2:total
karakter(1,i)=imgchar(1,i);
karstr = num2str(karakter(1,i));
reekskar{i} = strcat([reekstr,' ',karstr]);
waar = 0;
for k=2:total
if reekskar{i}==kodetabel{k}
reeks= reekskar{i};
waar=1;
end
end
if waar==0
output{tel}=reekstr;
kodetabel{i}=reekskar{i};
lastcode = lastcode+1;
kodetabelnr{i}=lastcode;
reeks=karakter(1,i);
tel = tel+1;
end;
end;
output{tel}=reeks;
  2 Comments
Martin Park
Martin Park on 7 Oct 2013
Error using == Matrix dimensions must agree.
Error in lzw (line 29) if reekskar{i}==kodetabel{k}

Answers (2)

Laurent
Laurent on 7 Oct 2013
It depends a bit on what result you want, but if you change that line to
if strcmp(reekskar{i},kodetabel{k})
the script runs. I don't know if this what you want, but at least there is a result. If you want something else, please tell us the result that you expect.
  3 Comments
Martin Park
Martin Park on 7 Oct 2013
series in my code is named reeks and character is named karakter and code table is kode tabel

Martin Park
Martin Park on 7 Oct 2013
Can anyone help me please

This question is closed.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!