matlab closes when using Huffman encoding
古いコメントを表示
I have a vector of size 65536x1
i am performing compression of image i used code
symbols = unique(YourVector(:));
counts = hist(YourVector(:), symbols);
p = double(counts) ./ sum(counts);
[dict,avglen] = huffmandict(symbols,p)
comp = huffmanenco(sig,dict)
but i get error
??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.
Error in ==> huffmandict>insertMaxVar
i changed value from 500 to 4000,but my matlab closes
回答 (1 件)
Walter Roberson
2012 年 12 月 24 日
1 投票
You have a routine which is calling itself, such as would happen if you accidentally named your .m file the same as the name of a routine that is used by huffmandict . What name did you give to the .m file for the code you show above?
7 件のコメント
Pat
2012 年 12 月 24 日
Pat
2012 年 12 月 24 日
Walter Roberson
2012 年 12 月 24 日
Use the debugger and single-step through huffmandict() to figure out what is being called recursively.
Pat
2012 年 12 月 24 日
編集済み: Walter Roberson
2012 年 12 月 24 日
Walter Roberson
2012 年 12 月 24 日
Is the number of elements in "comp" smaller than (the number of elements in YourVector multiplied by 8)? If so then you might have compression. To be more certain you should also include the size needed to represent the dict as part of the encoding cost.
Pat
2012 年 12 月 24 日
Walter Roberson
2012 年 12 月 24 日
comp is not an image. comp is compressed data. You would have to decompress it to display anything.
カテゴリ
ヘルプ センター および File Exchange で Large Files and Big Data についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!