2015-04-15 2 views
1

У меня есть список матриц. Как бы добавить эти матрицы для получения одной матрицы?конкатенирующая матрица в R

Пример:

> matrix(1, nrow=2, ncol=3) 
    [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 1 1 1 
> matrix(2, nrow=3, ncol=2) 
    [,1] [,2] 
[1,] 2 2 
[2,] 2 2 
[3,] 2 2 
> m1 <- matrix(1, nrow=2, ncol=3) 
> m2 <- matrix(2, nrow=3, ncol=2) 

Теперь мы можем иметь множество матриц в списке, скажем, у нас есть только два:

l <- list(m1, m2) 

Я хотел бы достичь что-то вроде:

 [,1] [,2] [,3] [,4] [,5] 
[1,] 1 1 1 
[2,] 1 1 1 
[3,]     2 2  
[4,]     2 2  
[5,]     2 2  

ответ

5

Вы можете попробовать bdiag

library(Matrix) 
bdiag(l) 
#5 x 5 sparse Matrix of class "dgCMatrix" 
#   
#[1,] 1 1 1 . . 
#[2,] 1 1 1 . . 
#[3,] . . . 2 2 
#[4,] . . . 2 2 
#[5,] . . . 2 2 

as.matrix(bdiag(l)) #will convert to `matrix` with `0` replacing the `.` 
+0

bah, cheating;) +1 – BrodieG

Смежные вопросы