如何在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

更新于: 2021年11月8日

3K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告