如何在R中將矩陣的對應行值與單行矩陣相乘?


為了在R中將具有多行的矩陣的行值與單行矩陣相乘,我們可以按照以下步驟進行:

  • 首先,建立一個具有多行的矩陣和一個單行矩陣。

  • 然後,使用mapply函式將這些矩陣中的行值相乘。

示例

建立第一個矩陣

讓我們建立一個如下所示的矩陣:

M1<-matrix(rpois(100,10),ncol=4)
M1

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):

     [,1] [,2] [,3] [,4]
[1,]   6   6    6    10
[2,]  12   8    6    13
[3,]  14   9    6     5
[4,]  10   8   15     7
[5,]   6   4   10    11
[6,]   9  11   10    10
[7,]   5  11   10     8
[8,]  11  14    9    13
[9,]  12  6     6     7
[10,]  6 10    12    11
[11,]  7  9    12    10
[12,] 16 13    11    11
[13,] 12 11     7    14
[14,] 14 11     8     9
[15,] 11  9     7     8
[16,]  9 12    17     7
[17,] 14 13    14     8
[18,]  9 15    11     9
[19,]  6  9     7     9
[20,] 17  8    11     7
[21,] 14  8     9    14
[22,]  9 15    11    10
[23,]  6 12    10     7
[24,] 11  9    12    15
[25,] 16 11     5    11

建立第二個矩陣

讓我們建立一個如下所示的矩陣:

M2<-matrix(c(1,0,2,5),nrow=1)
M2

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):

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

將兩個矩陣的值相乘

使用mapply函式將具有多行矩陣M1的行值與單行矩陣M2相乘:

M1<-matrix(rpois(100,10),ncol=4)
M2<-matrix(c(1,0,2,5),nrow=1)
mapply(`*`,M1,M2)

輸出

 [1] 11  0 36 55  9  0 14 35 10  0 24 40 14  0 10 55 11  0 26 40  8  0 20 45 12
[26]  0 22 60  9  0 18 75 10  0 16 70  9  0 16 50 11  0 30 80 16  0  4 70 11  0
[51] 22 60 10  0  8 35 10  0 28 40  8  0 18 75  8  0 26 40  9  0 24 20 14  0 10
[76] 30  6  0 24 75  8  0 18 60 12  0 20 60  5  0 24 40 16  0 24 35 16  0 24 45

更新於:2021年11月10日

401 次檢視

啟動您的職業生涯

完成課程獲得認證

開始
廣告