在matlab中矢量化递推方程

时间:2015-05-21 07:22:41

标签: matlab

我有一个递推方程式:

a(i+1)=a(i)+(((b(i)+b(i+1))*(c(i+1)-c(i)))/(d(i)+d(i+1)));

我有所需的向量bcd,它们都具有相同的长度。我可以假设a(1)=0

通常,我总是使用循环来执行此操作,但由于数据太大,因此需要相当长的时间。我想知道是否有办法矢量化a

1 个答案:

答案 0 :(得分:1)

我认为我得到了答案。在纸上做了一些数学之后,我明白了:

a=cumsum([a(1) ((b(1:end-1)+b(2:end)).*diff(c))./(d(1:end-1)+d(2:end))]);