Matlab中for循环的预分配

Matlab中for循环的预分配,matlab,for-loop,memory-management,Matlab,For Loop,Memory Management,我不熟悉循环,我在互联网上浏览过预分配,但很难知道如何在这个问题上应用分配。因此,我想知道是否有人可以提供一些建议,如何在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。对于下

我不熟悉循环,我在互联网上浏览过预分配,但很难知道如何在这个问题上应用分配。因此,我想知道是否有人可以提供一些建议,如何在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矩阵中。
最后一个矩阵,阿泰斯特是我的输出,我知道它将有1999年的维度

Divakar答案的另一个变体,非常感谢!我发现:

atest = zeros(1,1000)
for k = 2:1000
    ab = 1 + (k)
    ac = ab + 1
    atest(:,k) = ac
end
由于k的矩阵从第2列开始,atest的第一列将为空,并用0填充。 因此,我可能建议使用atest=NAN11000来代替预分配,以便于查看缺少的值。
请注意,我们使用1000而不是999,因为在进入循环和循环内部atestk-1=ac之前,分配取决于k矩阵的结束值。

atest=Zeros1999。您可能会感兴趣。谢谢帮助!!工作很好。如果解决了,请考虑将答案标记为已接受的答案。考虑到atest是一个向量,atestk=ac更有效。