R中的矩阵乘法和加法

Matrix multiplication and addition in R

也许我在搜索中没有使用正确的术语,但我想知道是否有人可以指出执行以下操作的简单方法:

我有两个矩阵:

mat1 = matrix(1:12, 3)
mat2 = matrix(c(1, 2, 1, 2, 3, 2, 1, 2), 2, 4)

我想将 mat1 的某一列中的每一行乘以 mat2 的第一行。例如,mat1 的第 3 列将变为 (7*3, 8*3, 9*3)=(21, 24, 27)。在此之后,我想将第二行mat2添加到mat1的某一列中的每一行,因此第3列将变为(21+2, 24+2, 27+2) = (23, 26, 29)

您可以试试下面的代码

t(t(mat1)*mat2[1,]+mat2[2,])

这样

> t(t(mat1)*mat2[1,]+mat2[2,])
     [,1] [,2] [,3] [,4]
[1,]    3    6   23   12
[2,]    4    7   26   13
[3,]    5    8   29   14