将矢量乘以R中的矩阵的最佳和最快的方法

时间:2013-10-22 02:16:38

标签: r

我有一个向量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

2 个答案:

答案 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