我需要编写一个代码来计算矩阵的累积乘积。 例如,如果是 A =(1 2 3 | 4 3 2) 然后 cum.sum(A)=(1 2 6 | 4 24 144)
这样做有什么好的算法吗?
我将使用R,C,Matlab或Octave。
答案 0 :(得分: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]
}
这适用于您的示例:您可能需要小心谨慎地将其概括为行数多于列的情况...