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
也许我在搜索中没有使用正确的术语,但我想知道是否有人可以指出执行以下操作的简单方法:
我有两个矩阵:
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