Объединение 2 квадратных матриц в другую квадратную матрицу со всеми элементами в R - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь объединить две квадратные матрицы разных размеров в одну квадратную матрицу, размеры которой являются суммой исходных двух. У меня одна матрица 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 <- 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)

Я пробовал cbindX из пакета gdata, а также некоторые другие решения с этого сайта, но ничего не работает. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 07 мая 2018

Если я действительно понял проблему ... Используйте это:

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

Эта команда создаст диагональную матрицу блока .

...