为什么Matlab不能在单元格数组中保存循环的部分结果?

时间:2015-07-21 13:53:52

标签: matlab for-loop cell-array

我的代码类似于:

for i=1:n
   a=something;
   b=something;

   c=cell(n,1);
   c{i,1}=[a b];
end

其中a和b都是1x3矩阵。当我执行循环时,Matlab仅保存最后一个单元格中最后一次迭代的结果。 我究竟做错了什么?因为如果我删除预分配它可以工作,但将结果存储在1xn单元格数组中,而我希望它们在nx1单元格数组中。 附:如果有更高效/快速的方法来做这样的事情而不是使用for循环,那么解决方案将非常受欢迎。

1 个答案:

答案 0 :(得分:1)

将单元格数组的预分配移到循环外部:

c=cell(n,1);
for i=1:n
   a=something;
   b=something;

   c{i,1}=[a b];
end

你拥有它的方式,你将覆盖你在每次循环迭代中保存的内容。