[問題] randn函數已回收

看板MATLAB作者 (喵喵猴)時間14年前 (2010/01/29 21:42), 編輯推噓6(605)
留言11則, 10人參與, 最新討論串1/1
想問同樣造出1000x100 randn的矩陣, 為何以下兩個程式所花時間會差那麼多? (1) tic for i=1:1000 for j=1:100 z(i,j)=randn; end end toc 約 0.13s (2) tic z=randn(1000,100); toc 約 0.0023s -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.2.207 ※ 編輯: sapajou 來自: 118.168.2.207 (01/29 21:43)

01/29 21:54, , 1F
第一個z會隨i,j改變大小,矩陣需要從新配置
01/29 21:54, 1F

01/29 23:57, , 2F
(1)改成先宣告z=zeros(1000,100)試試看差多少?!
01/29 23:57, 2F

01/30 00:12, , 3F
preallocate
01/30 00:12, 3F

01/30 00:33, , 4F
因為這是matlab
01/30 00:33, 4F

01/30 01:49, , 5F
matlab迴圈會比較慢的樣子@@
01/30 01:49, 5F

01/30 11:12, , 6F
1.迴圈 2.一直改變矩陣大小
01/30 11:12, 6F

01/30 12:00, , 7F
一次去倉庫拿100個 跟 每次去倉庫拿1個拿100次
01/30 12:00, 7F

02/01 18:17, , 8F
迴圈啊!!這是matlab的罩門!
02/01 18:17, 8F

02/01 19:32, , 9F
謝謝,主要是迴圈會慢,想問哪種程式跑迴圈會比較快?
02/01 19:32, 9F

02/01 19:38, , 10F
C
02/01 19:38, 10F

02/02 01:46, , 11F
好像只有matlab會特別慢?
02/02 01:46, 11F
文章代碼(AID): #1BOkNBNO (MATLAB)