首页 > 解决方案 > 将 2 个方阵组合成另一个方阵,其中包含 R 中的所有元素

问题描述

我试图将两个不同维度的方阵组合成一个方阵,其维度是原始两个的总和。我有一个 392 x 392 的矩阵和另一个 497 x 497 的矩阵。我想要的是 889 x 889 的第三个矩阵。

例如,如果我有矩阵 a 和矩阵 b,如下所述:

a <- matrix(sample(0:1, 25, replace=T), nrow=5, ncol=5)
b <- matrix(rep(0,16 ), nrow=4, ncol=4)
rownames(a) <- letters[1:5]
colnames(a) <- letters[1:5]
rownames(b) <- letters[6:9]
colnames(b) <- letters[6:9]

我将如何获得如下所示的矩阵 c:

{c <- matrix(c(0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), nrow=10,ncol=10)

我已经尝试了 gdata 包中的 cbindX 以及该站点的其他一些解决方案,但没有任何效果。任何帮助表示赞赏!

标签: rmatrixsparse-matrix

解决方案


如果我真的理解这个问题......使用这个:

C <- Matrix::bdiag(a, b) %>% 
        as.matrix

此命令将创建一个块对角矩阵


推荐阅读