2

R では、1x3 ベクトルを 3x3 行列で乗算して 1x3 ベクトルを生成したいと考えています。ただし、R は行列を返します。

> v = c(1,1,0)
> m = matrix(c(1,2,1,3,1,1,2,2,1),nrow=3,ncol=3,byrow=T)
> v*m
     [,1] [,2] [,3]
[1,]    1    2    1
[2,]    3    1    1
[3,]    0    0    0

正しい出力は、行列ではなくベクトルである必要があります

4

3 に答える 3

3

この場合の便利な関数はcrossprod、 およびtcrossprod

> tcrossprod(v, m)
     [,1] [,2] [,3]
[1,]    3    4    4

詳細については?crossprod、 と?tcrossprodを参照してください。

于 2013-04-22T16:22:16.463 に答える
2

何方をお探しですか

as.vector(v %*% m)

?

のドキュメントは次のmatmultとおりです。

 Multiplies two matrices, if they are conformable.  If one argument
 is a vector, it will be promoted to either a row or column matrix
 to make the two arguments conformable.  If both are vectors it
 will return the inner product (as a matrix).
于 2013-04-22T16:15:16.290 に答える