0

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

2 回答 2

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
于 2013-10-22T02:28:59.887 回答
0

*元素明智地相乘,但你需要按列来做......

t( t(m) * v)

或使用矩阵乘法...

m %*% diag(v)
于 2013-10-22T02:24:04.863 回答