我是循环新手,我在互联网上查看了预分配,但很难知道如何在这个问题上应用分配。因此,我想知道是否有人可以提供任何建议如何在Matlab中预先分配这种循环。
atest = [];
for k = 2:1000
ab = 1+ (k)
ac = ab +1
atest = [atest, ac]
end
% expected dimensions of atest is a matrix of (1,999)
基本思想是我有一些计算每个循环的公式(例如ab
和ac
)。对于下一个循环,此公式将添加到atest
矩阵。
最终矩阵artest
是我的输出,我知道其尺寸为(1,999)
答案 0 :(得分:0)
Divakar回答的另一个变体(非常感谢!)我发现:
atest = zeros(1,1000)
for k = 2:1000
ab = 1 + (k)
ac = ab + 1
atest(:,k) = ac
end
由于k
的矩阵从第2列开始,atest
的第一列将为空(填充0)。
因此,我可能会建议使用atest = NaN(1,1000)
来预先分配以便轻松查看"缺失值"。
请注意,我们使用1000而不是999,因为分配取决于k矩阵的结束值