作者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