使用R的矩阵上的sumcum

use*_*929 2 r

我想制作一个cumsum多矩阵来获取步骤.如果我们考虑:

A <- structure(c(1, 2, 3, 2, 3, 1, 4, 1, 2), .Dim = c(3, 3))
#      [,1] [,2] [,3]
# [1,]    1    2    4
# [2,]    2    3    1
# [3,]    3    1    2
B <- structure(c(6, 1, 9, 6, 3, 7, 3, 2, 8), .Dim = c(3, 3))
#      [,1] [,2] [,3]
# [1,]    6    6    3
# [2,]    1    3    2
# [3,]    9    7    8
C <- structure(c(1, 1, 2, 5, 3, 3, 3, 9, 1), .Dim = c(3, 3))
#      [,1] [,2] [,3]
# [1,]    1    5    3
# [2,]    1    3    9
# [3,]    2    3    1
Run Code Online (Sandbox Code Playgroud)

我想得到以下结果:

     [,1] [,2] [,3]
[1,]    1    2    4
[2,]    2    3    1
[3,]    3    1    2

     [,1] [,2] [,3]
[1,]    7    8    7
[2,]    3    6    3
[3,]   12    8   10

     [,1] [,2] [,3]
[1,]    8   13   10
[2,]    4    9   12
[3,]   14   11   11
Run Code Online (Sandbox Code Playgroud)

一步到位!我可以用for循环来做这个,但是对于大矩阵来说它很慢,我怎么能用apply来做呢?

Jam*_*mes 11

这是一个完美的工作Reduce:

Reduce("+", list(A,B,C), accumulate=TRUE)
[[1]]
     [,1] [,2] [,3]
[1,]    1    2    4
[2,]    2    3    1
[3,]    3    1    2

[[2]]
     [,1] [,2] [,3]
[1,]    7    8    7
[2,]    3    6    3
[3,]   12    8   10

[[3]]
     [,1] [,2] [,3]
[1,]    8   13   10
[2,]    4    9   12
[3,]   14   11   11
Run Code Online (Sandbox Code Playgroud)