如何将矩阵列表转换为3D矩阵?

时间:2019-06-09 19:23:01

标签: r list matrix

Functional way to stack list of 2d matrices into 3d matrix

↑从这个问题中我知道我可以使用simplify2array来完成这项任务。

但是,它不能解决我的问题。不幸的是,我只是不知道如何在没有示例的情况下描述问题。

l = list()
l[[1]] = matrix(1:110, nrow=10)
l[[2]] = matrix(110:1, nrow=10)
l = simplify2array(l)
dim(l)

此打印:

10 11 2

问题是,我希望以其他方式设置尺寸。我希望dim(l)打印:

2 11 10

如何实现?

1 个答案:

答案 0 :(得分:3)

使用aperm作为广义转置(其中a如末尾的注解中所示。)

aa <- aperm(a, 3:1)
dim(aa)
## [1]  2 11 10

注意

我们假设输入a为:

l = list()
l[[1]] = matrix(1:110, nrow=10)
l[[2]] = matrix(110:1, nrow=10)
a <- simplify2array(l)