我有一个递推方程式:
a(i+1)=a(i)+(((b(i)+b(i+1))*(c(i+1)-c(i)))/(d(i)+d(i+1)));
我有所需的向量b
,c
和d
,它们都具有相同的长度。我可以假设a(1)=0
。
通常,我总是使用循环来执行此操作,但由于数据太大,因此需要相当长的时间。我想知道是否有办法矢量化a
?
答案 0 :(得分:1)
我认为我得到了答案。在纸上做了一些数学之后,我明白了:
a=cumsum([a(1) ((b(1:end-1)+b(2:end)).*diff(c))./(d(1:end-1)+d(2:end))]);