也许我在搜索中没有使用正确的术语,但我想知道是否有人可以指出一种简单的方法来执行以下操作:
我有两个矩阵:
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
关于r - R中的矩阵乘法和加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61784363/