如何在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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.