[討論] 多次 矩陣疊加 這樣寫出現警告O'_'O

看板MATLAB作者 (番茄汁)時間9年前 (2016/03/12 10:19), 9年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
不好意思,請問各位大大: a=rand(1,10); b=a; %宣告一條 1X10的陣列 for i=2:100 a=rand(1,10); b=[b;a]; %把這些陣列疊加上去 end 這是本肥宅在做PCA的擷取特徵步驟 這個例子 想要把每條 1X10 循序疊上去 疊成一個 100X10的矩陣 可是這樣的作法 在黃色的地方出現警告說 b變數在每次迴圈都改變大小,會拖慢速度 是不是該寫成這樣比較好呢? b(100,10)=0; %宣告一個矩陣 for i=1:100 a=rand(1,10); b(i,:)=a; %每一列換成我想要的1X10陣列 end 請問這兩者有差嗎? 還是有更好的做法 O'_'O 我就換更好的做法 -------------------------------------- 剛去測了一下時間 做10000次 Elapsed time is 0.353152 seconds. %第一種 Elapsed time is 0.006834 seconds. %第二種 請問還有其他做法嗎@@!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.64.91.23 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1457749160.A.F6A.html ※ 編輯: storm654321 (203.64.91.23), 03/12/2016 10:21:18 ※ 編輯: storm654321 (203.64.91.23), 03/12/2016 10:23:04 ※ 編輯: storm654321 (203.64.91.23), 03/12/2016 10:26:12

03/12 13:17, , 1F
矩陣宣告應該是b=zeros(100,10)
03/12 13:17, 1F

03/12 13:17, , 2F
preallocate速度比較快,之前有討論過
03/12 13:17, 2F
感謝您的回答,100p了表心意

03/12 17:15, , 3F
感謝
03/12 17:15, 3F
※ 編輯: storm654321 (203.64.91.23), 03/12/2016 17:17:43
文章代碼(AID): #1Mutoezg (MATLAB)
文章代碼(AID): #1Mutoezg (MATLAB)