5

以下があるとします。

x <- matrix(1:9, nrow=3)
y <- c(1,2,3)
x%*%y
y%*%x

行列の乗算が未定義ではないのはなぜですか? xこれは 3 x 3 行列でyあり、1 x 3 行列であることがわかっています。したがってx %*% y、定義する必要はなくy %*% x、1 x 3 の行列にする必要があります。

4

1 に答える 1

7

幸いなことに (状況によっては残念ながら) 多くの R 演算子 (既定の状態) がオーバーロードされており、「ボンネットの下」であらゆる種類の処理を実行して%*%Rますy。 . 入力するとき

x %*% y 

y3 x 1 のマトリックスを作成し、入力すると

y %*% x 

y1 x 3 の行列を作成します。

入力するときと比較してみてください

x %*% as.matrix(y) 

t(as.matrix(y)) %*% x

それぞれ

于 2013-01-04T14:30:32.173 に答える