我的代码类似于:
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循环,那么解决方案将非常受欢迎。
答案 0 :(得分:1)
将单元格数组的预分配移到循环外部:
c=cell(n,1);
for i=1:n
a=something;
b=something;
c{i,1}=[a b];
end
你拥有它的方式,你将覆盖你在每次循环迭代中保存的内容。