1

我有一个包含多个矩阵(从 2 到 n)的列表。为简单起见,假设我有一个包含 5 个矩阵的列表,如下所示。

> lst
[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    1    1    1    1    1

[[2]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]    2    2    2    2    2
...
[[5]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    5    5    5    5
[2,]    5    5    5    5    5

如何执行操作(类似于 colSums,但用于列表)将它们相加并获得单个矩阵作为输出:

     [,1] [,2] [,3] [,4] [,5]
[1,]   15   15   15   15   15
[2,]   15   15   15   15   15

我试过了mapply(sum,lst[[1]],lst[[2]],lst[[3]],lst[[4]],lst[[5]])。这确实让我得到了总和,但是矩阵失去了它的形状并且需要命名每个列表项(也许 5 可以,但如果我有 100 怎么办?)。

4

1 回答 1

9

这应该这样做

Reduce('+', lst)
于 2013-09-13T21:08:16.877 回答