Re: [問題] for的速度問題已回收
※ 引述《ericabab (ㄍㄠˊ)》之銘言:
: 今天跑程式發現一個搞不懂的問題
: 以下兩種情況
: (1)
: for i=1:1000
: ;
: end
: (2)
: k=1:1000; %這行並沒有算在時間裡
: for i=k
: ;
: end
: 這兩種情況的for loop,(2)的速度會慢上好幾十倍
: 想不通為什麼,我會覺得完全是一樣的事情@@
: 謝謝
根據測試
(A) 如果是相同的CODE 比較下 放第一個的會比較慢 假設都是
tic
for i=1:1000
;
end
toc
for i=1:1000
;
end
toc
Elapsed time is 0.000007 seconds.
Elapsed time is 0.000005 seconds.
大概是放前面的還有MATLAB熱身的問題
再來寫法
===============================================================
(B)
如果是寫
tic
for i=1:1000
;
end
toc
k=1:1000;
tic
for i=k
;
end
toc
Elapsed time is 0.000006 seconds.
Elapsed time is 0.000244 seconds.
可能要考慮的是 是不是k在外面要多去執行判斷k的問題
===================================================================
(C) 如果改成
tic
for i=1:1000
;
end
toc
k=1000;
tic
for i=1:k
;
end
toc
Elapsed time is 0.000006 seconds.
Elapsed time is 0.000006 seconds.
結論(B)中的i=k應該是耗時的關鍵 雖然大部分的人不在乎那十萬分秒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.63.252
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章