[问题] 不同资料型态循环储存

楼主: Fugacious (bibliomania)   2015-08-17 15:25:35
如题
run_length = 0;
new_index_y 是1*64的矩阵里面放数字
encoded = [];
for i = 1:64
if i < 64 || i ~= 64
if i > 2 || i ==2
if new_index_y(i) == 0
run_length = run_length + 1;
%run_length 用来纪录0的个数
else
encoded = [ encoded run_length new_index_y(i) ];
% 若i小于64时,encoded 储存 run_length 跟 newindex_y
run_length = 0;
end
else
encoded = [];
end
else
encoded = [encoded 'EOB'];
end
end
问题出在倒数第三行 encoded = [encoded 'EOB'];
我希望在 i = 64的时候(也就是循环执行到最后一个值)
encoded 最后能够加上三个英文字 EOB
EOB 的目的是end of block
就是newindex_y之后都是零的纪录
因为之后会用 huffmandict 去做
如果用cell似乎就要用两次?
总之我希望循环跑完最后增加英文字
Error说不同型态的资料不能这样储存
请问那我要另外令一个阵列吗?
用cell储存encoded{1,1}跟最后的encoded{1,2}
会变成前面东西被存进encoded{1,1}{1,1}{1,1}.........
似乎没办法直接像是串接矩阵把 EOB 串接在值后面
作者: celestialgod (天)   2015-08-18 09:28:00
cell的话,要改成用{}不是用[]建议preallocate矩阵大小

Links booklink

Contact Us: admin [ a t ] ucptt.com