R 将nx1矩阵转换为平方对角矩阵
我有一个矩阵10x1矩阵a,如下所示: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
[,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))
。