首页 > 解决方案 > R中的矩阵乘法和加法

问题描述

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

我有两个矩阵:

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

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

标签: rmatrixoperators

解决方案


你可以试试下面的代码

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

推荐阅读