我在R中有一个相同大小的矩阵列表,我希望彼此相乘。
我正在寻找办法:
list$A * list$B * list$C * ...
无需手动输入(我的列表有几十个矩阵)。
答案 0 :(得分:16)
如果您想要逐个元素的乘法
,请使用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