mik*_*ike 5 r matrix multiplication
我试图将矩阵的每一行乘以另一个矩阵的列.例如:
mat1 <- matrix(rnorm(10), nrow=5, ncol=2)
mat2 <- matrix(rnorm(5), nrow=5)
Run Code Online (Sandbox Code Playgroud)
我想用mat2乘以mat1的每一行.所需的输出形状为5*2.
您可以使用Mat2的apply()
每一列乘以mat2.(将执行R通常是两个等长矢量的矢量化元素乘法)."*"
apply(mat1, 2, "*", mat2)
[,1] [,2]
[1,] 0.1785476 0.4175557
[2,] 0.2644247 -0.3745997
[3,] -0.5328542 0.8945527
[4,] -2.7351502 -0.7715341
[5,] -0.9719129 -0.1346929
Run Code Online (Sandbox Code Playgroud)
或者更好的是,转换mat1
为矢量以利用R的回收规则:
mat2 <- matrix(1:10, ncol=2)
mat1 <- matrix(1:5, ncol=1)
as.vector(mat1)*mat2
[,1] [,2]
[1,] 1 6
[2,] 4 14
[3,] 9 24
[4,] 16 36
[5,] 25 50
Run Code Online (Sandbox Code Playgroud)