0
我有一個哈夫曼代碼在二進制這是由Matlab huffmanenco
功能。我將這些代碼存儲在一個文件中,然後檢索它以再次創建我的主數據。我已經做了dict
完美轉換,正如我之前在文件中寫的也是我做檢索Huffman編碼,但是當我使用huffmandeco
讓我的數據我得到這個錯誤:哈夫曼編碼在matlab(二進制值)
使用錯誤huffmandeco(67行)
編碼信號包含字典中不存在的代碼。
錯誤extractNPSM_Huffman(線75)
味精= huffmandeco(味精,細胞)`
我的代碼來獲取數據(我覺得這是對我的方式來轉換位翻一番的問題):
s = bp;
e = s + huffmanLen - 1;
huff = [];
huff = bits(s:e);
for i = s:8:e
k = bits(s:(s+8));
c = 0;
for j = 1:8
c = bitset(c,9-j,k(j));
end
msg = [msg double(c)];
end
msg = huffmandeco(msg, cells)
我不得不承認,我迷失在你在這裏做什麼。我假設'bits'包含你的編碼數據,'cells'是你的'dict'?然後,它看起來像翻轉該子串的每個字節的位。這是爲什麼?請發佈創建「dict」的[mcve],對輸入進行編碼,並在使用上面的代碼時產生錯誤。 – beaker