Re: [問題]如何避免寫for迴圈

看板MATLAB作者 (貓柳田博士)時間12年前 (2013/07/03 13:10), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《amapola (林清風)》之銘言: : Q1) : a(1)=b(1); : for 2:n : a(i)=b(i)+a(i-1) : end 我來理解看看這個程式的意思 首先b是一個已知向量 假設b = [c d e f g ... ] 然後這樣算下來的話 a就是[c c+d c+d+e c+d+e+f c+d+e+f+g ...] 如果是這樣的話 Q1的程式碼可以等效為 a = cumsum(b) 就可以不用迴圈了 : Q2) : c=0; : for 1:n : a(i)=b(i)+c; : a(i)=abs(a(i)); : c=a(i); : end Q2的話,看起來像是與b向量有關的遞迴數列 看起來無解m(_ _)m 至少我目前沒想到要怎麼做 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.190.70

07/03 13:50, , 1F
呼叫函式不等於沒有迴圈,函式內可能仍有用到迴圈
07/03 13:50, 1F

07/03 14:25, , 2F
這種東西一定會用到迴圈的,就只是有沒有最佳化的問題
07/03 14:25, 2F

07/04 12:33, , 3F
cumsum這函數一定還是有用到迴圈 只是既然是matlab內建
07/04 12:33, 3F

07/04 12:33, , 4F
應該有最佳化而且先compile過 所以會比我們自己寫for讓它
07/04 12:33, 4F

07/04 12:34, , 5F
一行行去慢慢讀快
07/04 12:34, 5F

07/04 17:29, , 6F
推樓上
07/04 17:29, 6F
文章代碼(AID): #1Hqx96vR (MATLAB)
文章代碼(AID): #1Hqx96vR (MATLAB)