R 将nx1矩阵转换为平方对角矩阵

R 将nx1矩阵转换为平方对角矩阵,r,matrix,R,Matrix,我有一个矩阵10x1矩阵a,如下所示: [,1] [1,] 0 [2,] 133 [3,] 206 [4,] 104 [5,] 159 [6,] 0 [7,] 89 [8,] 134 [9,] 0 [10,] 119 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 0 0 0 0 0 0 0 0

我有一个矩阵10x1矩阵a,如下所示:

      [,1]
 [1,]    0
 [2,]  133
 [3,]  206
 [4,]  104
 [5,]  159
 [6,]    0
 [7,]   89
 [8,]  134
 [9,]    0
[10,]  119
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1    0    0    0    0    0    0    0    0     0
 [2,]    0    133  0    0    0    0    0    0    0     0
 [3,]    0    0    206  0    0    0    0    0    0     0
 [4,]    0    0    0    104  0    0    0    0    0     0
 [5,]    0    0    0    0    159  0    0    0    0     0
 [6,]    0    0    0    0    0    0    0    0    0     0
 [7,]    0    0    0    0    0    0    89   0    0     0
 [8,]    0    0    0    0    0    0    0    134  0     0
 [9,]    0    0    0    0    0    0    0    0    0     0
[10,]    0    0    0    0    0    0    0    0    0     119
我试图将其转换为10x10对角矩阵,如下所示:

      [,1]
 [1,]    0
 [2,]  133
 [3,]  206
 [4,]  104
 [5,]  159
 [6,]    0
 [7,]   89
 [8,]  134
 [9,]    0
[10,]  119
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1    0    0    0    0    0    0    0    0     0
 [2,]    0    133  0    0    0    0    0    0    0     0
 [3,]    0    0    206  0    0    0    0    0    0     0
 [4,]    0    0    0    104  0    0    0    0    0     0
 [5,]    0    0    0    0    159  0    0    0    0     0
 [6,]    0    0    0    0    0    0    0    0    0     0
 [7,]    0    0    0    0    0    0    89   0    0     0
 [8,]    0    0    0    0    0    0    0    134  0     0
 [9,]    0    0    0    0    0    0    0    0    0     0
[10,]    0    0    0    0    0    0    0    0    0     119
我尝试过一些基本方法,如
diag(a,10,10)
没有效果,没有想法,非常感谢任何帮助。

简短回答:


diag(as.vector(a))

它不应该是
diag(as.vector(a))
@bdecaf,绝对正确。请把这个贴在回答部分,这样我可以给你一些分数。稍微短一点的版本是
diag(c(A))