我有一个要相互乘以R的大小相等的矩阵的列表。
我正在寻找一种方法:
list$A * list$B * list$C * ...
无需手动输入(我的列表中有数十个矩阵)。
最佳答案
如果要逐个元素相乘,请使用Reduce
> Lists <- list(matrix(1:4, 2), matrix(5:8, 2), matrix(10:13, 2))
> Reduce("*", Lists)
[,1] [,2]
[1,] 50 252
[2,] 132 416
除了使用
abind
,还可以使用simplify2array
函数和apply
> apply(simplify2array(Lists), c(1,2), prod)
[,1] [,2]
[1,] 50 252
[2,] 132 416
如果要使用
abind
,请使用以下命令:> library(abind)
> apply(abind(Lists, along=3), c(1,2), prod)
[,1] [,2]
[1,] 50 252
[2,] 132 416