我有一个向量v
和一个矩阵m
。我想在R中得到以下结果。我该怎么做?
v = c(1, 2)
m = matrix(c(1, 0, 1, 1, 0, 2.5, 3.5, 4.3, 2, 5.5), nrow = 5)
result = matrix(c(1, 0, 1, 1, 0, 5, 7, 8.6, 4, 11), nrow = 5)
> result
[,1] [,2]
[1,] 1 5.0
[2,] 0 7.0
[3,] 1 8.6
[4,] 1 4.0
[5,] 0 11.0
答案 0 :(得分:0)
*
元素明智地相乘,但你需要按列...
t( t(m) * v)
或使用矩阵乘法...
m %*% diag(v)
答案 1 :(得分:0)
一种方法是将v
放入与m
大小相同的矩阵中,然后再乘以。
> v[col(m)]*m
[,1] [,2]
[1,] 1 5.0
[2,] 0 7.0
[3,] 1 8.6
[4,] 1 4.0
[5,] 0 11.0