【发布时间】:2011-03-30 09:29:47
【问题描述】:
给定一个 2x2 矩阵的列表(长度 = n),我如何计算所有这些矩阵的总和(并得到一个 2x2 矩阵)?
如果我在 (2 x 2 x n) 维数组中拥有这些矩阵而不是列表,我该怎么做?
【问题讨论】:
-
@Xupypr MV 如果没有
r标签就绰绰有余了。
给定一个 2x2 矩阵的列表(长度 = n),我如何计算所有这些矩阵的总和(并得到一个 2x2 矩阵)?
如果我在 (2 x 2 x n) 维数组中拥有这些矩阵而不是列表,我该怎么做?
【问题讨论】:
r 标签就绰绰有余了。
列表中的矩阵总和:
Reduce("+", matrix_list)
【讨论】:
do.call 没有成功。我认为我必须尝试理解和使用Reduce函数。
Map和Reduce这样的函数式编程函数都大写吗?
我会弄乱数组,所以如果你有 list 例如:
n <- 5
someList <- lapply(1:n, function(i) matrix(1:4+(i-1)*4,2,2))
将其转换为 3d array
someArray <- array(unlist(someList ), c(2,2,n))
现在你可以使用rowSums
rowSums(someArray, dims=2)
# [,1] [,2]
# [1,] 45 55
# [2,] 50 60
【讨论】:
dims 参数。