Re: [問題] for的速度問題已回收
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
r=0;
k1=1000000;
tic
for i=1:k1
r=r+i^2;
end
toc
s=0;
k2=1:1000000;
tic
for i=k2
s=s+i^2;
end
toc
t=0;
k3=1:1000000;
tic
for i=1:1000000
t=t+k3(i)^2;
end
toc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Elapsed time is 0.016000 seconds.
Elapsed time is 2.875000 seconds.
Elapsed time is 0.016000 seconds.
改成第三種寫法也許會快一點
※ 引述《ericabab (ㄍㄠˊ)》之銘言:
: ※ 引述《e0101010 (我...)》之銘言:
: : 根據測試
: : ===============================================================
: : (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的問題
: : ===================================================================
: 你好,我的問題應該不只是因為k在外面要判斷的問題
: 如下code
: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
: k1=1000;
: tic
: for i=1:k1
: ;
: end
: toc
: k2=1:1000;
: tic
: for i=k2
: ;
: end
: toc
: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
: Elapsed time is 0.000006 seconds.
: Elapsed time is 0.000185 seconds.
: 同樣兩個情況都有給k進去,但速度硬是差了30倍左右
: 因為我的程式的需求,其實我的k是一串不規則的數
: 所以只能用第二種方法。
: 而因為我要跑的迴圈很多,加上迴圈裡的指令時間不長
: 所以導致速度真的會慢幾十倍...因此想知道關鍵在哪
: 才能研究有沒有辦法改善
: 謝謝你~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.213.158
推
01/11 11:36, , 1F
01/11 11:36, 1F
→
01/11 11:36, , 2F
01/11 11:36, 2F
→
01/11 13:44, , 3F
01/11 13:44, 3F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章