矩阵,对角线为1对

use*_*757 5 r matrix indicator sparse-matrix

假设我有以下矩阵垫,这是一个二进制指示符矩阵:

mat <-matrix(c(1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1),byrow = T,nrow = 3)

> mat
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    0    0    0    0
[2,]    0    0    1    1    0    0
[3,]    0    0    0    0    1    1
Run Code Online (Sandbox Code Playgroud)

该矩阵只有3行.我需要创建一个10000行,在对角线上使用相同的1对模式.例如,对于5行,我期望一个5 x 10矩阵:

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    1    0    0    0    0    0    0    0     0
[2,]    0    0    1    1    0    0    0    0    0     0
[3,]    0    0    0    0    1    1    0    0    0     0
[4,]    0    0    0    0    0    0    1    1    0     0
[5,]    0    0    0    0    0    0    0    0    1     1
Run Code Online (Sandbox Code Playgroud)

有谁知道一个简单的方法吗?非常感谢

Vin*_*ynd 1

当您没有提供足够的元素来填充矩阵时,它们将被回收:如果您提供两个 1 和 n 个零(第一行和第二行的前两个元素),您将获得所需的矩阵。

n <- 5
matrix( 
  c(1,1,rep(0,2*n)), 
  byrow=TRUE, nr=n, nc=2*n 
)
Run Code Online (Sandbox Code Playgroud)