R中的方形到"对角线"矩阵

ktj*_*989 2 r matrix

我有一组向量,并希望将它们堆叠在一起以创建矩阵的对角条目.

从c1和c2创建example_out矩阵的简单方法是什么?

c1 <- seq(1, 4)
c2 <- seq(5, 8)


example_out <- matrix(c(1,0,0,0,5,2,0,0,0,6,3,0,0,0,7,4,0,0,0,8), nrow=5, byrow=T)
example_out
Run Code Online (Sandbox Code Playgroud)

jay*_*.sf 6

创建一个矩阵出来的0S,然后填写主对角线c1和次对角线c2.

example_out <- matrix(rep(0, 20), 5, 4)
diag(example_out) <- c1
diag(example_out[-1, ]) <- c2
Run Code Online (Sandbox Code Playgroud)

生产

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

数据

c1 <- seq(1, 4)
c2 <- seq(5, 8)
Run Code Online (Sandbox Code Playgroud)

  • 整齐.你也可以避免`rep` - `mat < - 矩阵(0,5,4)`会起作用. (2认同)