【发布时间】:2015-10-11 00:42:15
【问题描述】:
我的代码是这样的:
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 循环,那么该解决方案将非常受欢迎。
【问题讨论】:
-
您在循环中每次都重新创建您的元胞数组 c。您可以通过调试并查看
c=cell(n,1);正在做什么来找出答案。为什么不把初始化移到循环之外呢?
标签: matlab for-loop cell-array