簡體   English   中英

在Matlab中預分配for循環

[英]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)

基本思想是,我有一些公式可以為每個循環計算(例如abac )。 對於下一個循環這個公式被添加到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM