如何在 R 中将单行矩阵与多行矩阵的对应行值相乘?

r programmingserver side programmingprogramming更新于 2025/4/7 10:22:17

要在 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

相关文章