如何在R中将向量转换为对角矩阵?
对角矩阵是一种方阵,从左上到右下,非对角元素均为零。要在R中将向量转换为对角矩阵,我们可以使用diag函数以及matrix函数,并使用ncol参数,其中我们可以将列数设置为等于向量中的值的数量。请查看下面给出的示例,以了解如何实现。
示例 1
以下代码片段是一个示例列表 -
V1<-rpois(5,10) V1
创建以下向量 -
[1] 9 8 4 8 9
以下代码片段创建一个示例矩阵 -
V1<-rpois(5,10) M1<-matrix(diag(V1),ncol=5) M1
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5] [1,] 9 0 0 0 0 [2,] 0 8 0 0 0 [3,] 0 0 4 0 0 [4,] 0 0 0 8 0 [5,] 0 0 0 0 9
示例 2
以下代码片段是一个示例列表 -
V2<-rpois(5,500) V2
创建以下向量 -
[1] 500 484 487 515 460
以下代码片段创建一个示例矩阵 -
V2<-rpois(5,500) M2<-matrix(diag(V2),ncol=5) M2
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5] [1,] 500 0 0 0 0 [2,] 0 484 0 0 0 [3,] 0 0 487 0 0 [4,] 0 0 0 515 0 [5,] 0 0 0 0 460
示例 3
以下代码片段是一个示例列表 -
V3<-sample(1:100,5) V3
创建以下向量 -
[1] 19 72 11 95 5
以下代码片段创建一个示例矩阵 -
V3<-sample(1:100,5) M3<-matrix(diag(V3),ncol=5) M3
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5] [1,] 19 0 0 0 0 [2,] 0 72 0 0 0 [3,] 0 0 11 0 0 [4,] 0 0 0 95 0 [5,] 0 0 0 0 5
示例 4
以下代码片段是一个示例列表 -
V4<-round(rnorm(5),2) V4
创建以下向量 -
[1] -0.81 -1.12 -0.98 -1.59 0.58
以下代码片段创建一个示例矩阵 -
V4<-round(rnorm(5),2) M4<-matrix(diag(V4),ncol=5) M4
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5] [1,] -0.81 0.00 0.00 0.00 0.00 [2,] 0.00 -1.12 0.00 0.00 0.00 [3,] 0.00 0.00 -0.98 0.00 0.00 [4,] 0.00 0.00 0.00 -1.59 0.00 [5,] 0.00 0.00 0.00 0.00 0.58
示例 5
以下代码片段是一个示例列表 -
V5<-round(rnorm(5,10,0.5),2) V5
创建以下向量 -
[1] 10.43 8.89 9.79 10.50 9.29
以下代码片段创建一个示例矩阵 -
V5<-round(rnorm(5,10,0.5),2) M5<-matrix(diag(V5),ncol=5) M5
创建以下矩阵 -
[,1] [,2] [,3] [,4] [,5] [1,] 10.43 0.00 0.00 0.0 0.00 [2,] 0.00 8.89 0.00 0.0 0.00 [3,] 0.00 0.00 9.79 0.0 0.00 [4,] 0.00 0.00 0.00 10.5 0.00 [5,] 0.00 0.00 0.00 0.0 9.29
广告