可能重複:
Matlab - building an array while looping
Matrix of unknown length in MATLAB?從for循環產生的價值構建在MATLAB矩陣
你怎麼把所有的 「a」 的價值觀,共同形成向量?
for i=1:3
a=2+i
end
而且這也許是一個風格問題,但是當你把一個分號結束後,在for循環中,如上面的一個,也是它正確的把一個分號第一行之後?
可能重複:
Matlab - building an array while looping
Matrix of unknown length in MATLAB?從for循環產生的價值構建在MATLAB矩陣
你怎麼把所有的 「a」 的價值觀,共同形成向量?
for i=1:3
a=2+i
end
而且這也許是一個風格問題,但是當你把一個分號結束後,在for循環中,如上面的一個,也是它正確的把一個分號第一行之後?
您需要索引a
,像這樣:
for ii=1:3
a(ii) = 2+ii;
end
我更喜歡使用ii
作爲循環變量,以避免衝突MATLAB的內置i
。你也應該,如果你知道的大小循環開始前預分配a
,像這樣:
N = 100;
a = zeros(1,N);
for ii=1:N
a(ii) = 2 + ii;
end
就個人而言,我從來沒有把任何標點的for ii=1:3
部分之後,寫出了一個班輪FOR
循環時除外,像這樣:
for ii=1:N, a(ii) = 2 + ii; end
請注意,您可以更有效地構建該如此:
a=1:3;
a=a+2;
第一線將第一行a
作爲向量(1,2,3)
,第二行將2
添加到每個元素。
「效率」在這樣一個小矢量中並不重要,但是如果你習慣於更像這樣思考的話,通常你會得到更好的matlab里程。
我想這只是一個簡單的例子,你實際上更多的是你的for循環。如果不是的話,你可以將所有東西向量化爲一行:'a = 2 +(1:3);' – groovingandi 2010-07-07 09:59:15
Duplicate:http://stackoverflow.com/questions/2480933/matlab-building-an-array-while-循環,http://stackoverflow.com/questions/1548116/matrix-of-unknown-length-in-matlab – gnovice 2010-07-07 13:37:23