2013-05-15 113 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] 
} 

這適用於你的例子:你可能要小心一點就比列更多的行推廣的情況下...