[英]Pre allocation of for loops in Matlab
我是循環系統的新手,我在網上瀏覽了有關預分配的信息,但是很難知道如何對這個問題進行分配。 因此,我想知道是否有人可以提供任何建議如何在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)的尺寸
我發現的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)
進行預分配,以便輕松查看“缺失值”。 請注意,由於分配取決於k矩陣的最終值,因此我們使用1000而不是999
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.