看板 MATLAB 關於我們 聯絡資訊
※ 引述《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
s540421:呼叫函式不等於沒有迴圈,函式內可能仍有用到迴圈 07/03 13:50
shuntau:這種東西一定會用到迴圈的,就只是有沒有最佳化的問題 07/03 14:25
profyang:cumsum這函數一定還是有用到迴圈 只是既然是matlab內建 07/04 12:33
profyang:應該有最佳化而且先compile過 所以會比我們自己寫for讓它 07/04 12:33
profyang:一行行去慢慢讀快 07/04 12:34
kurt28:推樓上 07/04 17:29