作者shuntau (貓柳田博士)
看板MATLAB
標題Re: [問題]如何避免寫for迴圈
時間Wed Jul 3 13:10:27 2013
※ 引述《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
1F:→ s540421:呼叫函式不等於沒有迴圈,函式內可能仍有用到迴圈 07/03 13:50
2F:→ shuntau:這種東西一定會用到迴圈的,就只是有沒有最佳化的問題 07/03 14:25
3F:推 profyang:cumsum這函數一定還是有用到迴圈 只是既然是matlab內建 07/04 12:33
4F:→ profyang:應該有最佳化而且先compile過 所以會比我們自己寫for讓它 07/04 12:33
5F:→ profyang:一行行去慢慢讀快 07/04 12:34
6F:推 kurt28:推樓上 07/04 17:29