在 R 中將單列矩陣轉換為對角矩陣。


對角矩陣是一種方陣,從左上到右下,非對角線元素均為零。

為了在 R 中將單列矩陣轉換為對角矩陣,我們可以使用 diag 函式以及 matrix 函式,並使用 ncol 引數,其中我們可以將列數設定為單列矩陣中值的個數。

檢視下面給出的示例,瞭解如何實現。

示例 1

以下程式碼片段建立了一個示例矩陣 -

M1<-matrix(rpois(5,2),ncol=1)
M1

建立了以下矩陣 -

   [,1]
[1,] 2
[2,] 3
[3,] 5
[4,] 1
[5,] 1

為了將矩陣 M1 轉換為上面建立的矩陣上的對角矩陣,請將以下程式碼新增到上面的程式碼片段中 -

M1<-matrix(rpois(5,2),ncol=1)
M1<-matrix(diag(as.vector(M1)),ncol=5)
M1

輸出

如果將以上所有程式碼片段作為一個程式執行,則會生成以下輸出 -

   [,1] [,2] [,3] [,4] [,5]
[1,] 2    0    0    0    0
[2,] 0    3    0    0    0
[3,] 0    0    5    0    0
[4,] 0    0    0    1    0
[5,] 0    0    0    0    1

示例 2

以下程式碼片段建立了一個示例矩陣 -

M2<-matrix(rpois(5,500),ncol=1)
M2

建立了以下矩陣 -

    [,1]
[1,] 505
[2,] 505
[3,] 523
[4,] 545
[5,] 507

為了將矩陣 M2 轉換為上面建立的矩陣上的對角矩陣,請將以下程式碼新增到上面的程式碼片段中 -

M2<-matrix(rpois(5,500),ncol=1)
M2<-matrix(diag(as.vector(M2)),ncol=5)
M2

輸出

如果將以上所有程式碼片段作為一個程式執行,則會生成以下輸出 -

   [,1] [,2] [,3] [,4] [,5]
[1,] 505   0   0   0    0
[2,]   0 505   0   0    0
[3,]   0   0 523   0    0
[4,]   0   0   0 545    0
[5,]   0   0   0   0  507

示例 3

以下程式碼片段建立了一個示例矩陣 -

M3<-matrix(rnorm(5),ncol=1)
M3

建立了以下矩陣 -

          [,1]
[1,]  0.2614596
[2,]  0.6914427
[3,] -1.8483160
[4,] -1.0057351
[5,] -1.4467553

為了將矩陣 M3 轉換為上面建立的矩陣上的對角矩陣,請將以下程式碼新增到上面的程式碼片段中 -

M3<-matrix(rnorm(5),ncol=1)
M3<-matrix(diag(as.vector(M3)),ncol=5)
M3

輸出

如果將以上所有程式碼片段作為一個程式執行,則會生成以下輸出 -

          [,1]      [,2]      [,3]    [,4]       [,5]
[1,] 0.2614596 0.0000000  0.000000  0.000000  0.000000
[2,] 0.0000000 0.6914427  0.000000  0.000000  0.000000
[3,] 0.0000000 0.0000000 -1.848316 0.000000   0.000000
[4,] 0.0000000 0.0000000  0.000000 -1.005735  0.000000
[5,] 0.0000000 0.0000000  0.000000  0.000000 -1.446755

示例 4

以下程式碼片段建立了一個示例矩陣 -

M4<-matrix(round(rnorm(5,25,3.2),1),ncol=1)
M4

建立了以下矩陣 -

     [,1]
[1,] 26.6
[2,] 26.5
[3,] 22.1
[4,] 24.8
[5,] 19.1

為了將矩陣 M4 轉換為上面建立的矩陣上的對角矩陣,請將以下程式碼新增到上面的程式碼片段中 -

M4<-matrix(round(rnorm(5,25,3.2),1),ncol=1)
M4<-matrix(diag(as.vector(M4)),ncol=5)
M4

輸出

如果將以上所有程式碼片段作為一個程式執行,則會生成以下輸出 -

    [,1] [,2] [,3] [,4]   [,5]
[1,] 26.6 0.0  0.0  0.0    0.0
[2,] 0.0 26.5  0.0  0.0    0.0
[3,] 0.0  0.0 22.1  0.0    0.0
[4,] 0.0  0.0  0.0 24.8    0.0
[5,] 0.0  0.0  0.0  0.0   19.1

示例 5

以下程式碼片段建立了一個示例矩陣 -

M5<-matrix(round(runif(5,2,10),2),ncol=1)
M5

建立了以下矩陣 -

     [,1]
[1,] 5.92
[2,] 7.34
[3,] 7.72
[4,] 3.18
[5,] 7.00

為了將矩陣 M5 轉換為上面建立的矩陣上的對角矩陣,請將以下程式碼新增到上面的程式碼片段中 -

M5<-matrix(round(runif(5,2,10),2),ncol=1)
M5<-matrix(diag(as.vector(M5)),ncol=5)
M5

輸出

如果將以上所有程式碼片段作為一個程式執行,則會生成以下輸出 -

     [,1] [,2] [,3] [,4] [,5]
[1,] 5.92 0.00 0.00 0.00  0
[2,] 0.00 7.34 0.00 0.00  0
[3,] 0.00 0.00 7.72 0.00  0
[4,] 0.00 0.00 0.00 3.18  0
[5,] 0.00 0.00 0.00 0.00  7

更新於: 2021-11-08

503 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.