2013-05-15 71 views
0

我需要编写一个代码来计算矩阵的累积乘积。 例如,如果
A =(1 2 3 | 4 3 2) 然后 cum.sum(A)=(1 2 6 | 4 24 144)基质的累积产物?

是否有良好的算法用于执行此操作?

我将使用R,C,Matlab或Octave。

回答

1
A <- matrix(c(1,2,3,4,3,2),byrow=TRUE,nrow=2) 

我猜你希望所有的累积产(K,L),比少(I,J)...?

B <- A 
nr <- nrow(B) 
nc <- ncol(B) 
for (i in 1:max(nr,nc)) { 
    if (i<=nr) B[i,i:nc] <- cumprod(B[i,])[i:nc] 
} 

这适用于你的例子:你可能要小心一点就比列更多的行推广的情况下...