2つの行列があります。2つの行列を掛けるR
最初の1: [1,2,3]
と第二1:
[3,1,2
2,1,3
3,2,1]
私はそれらを乗算する方法を探しています。結果があることを想定している
:Rで[11, 13, 10]
、mat1%*%mat2
は動作しません。
2つの行列があります。2つの行列を掛けるR
最初の1: [1,2,3]
と第二1:
[3,1,2
2,1,3
3,2,1]
私はそれらを乗算する方法を探しています。結果があることを想定している
:Rで[11, 13, 10]
、mat1%*%mat2
は動作しません。
あなたが望んでいた結果を得るために第2の行列の転置を必要とする:本当の問題が大きい場合
> v1 <- c(1,2,3)
> v2 <- matrix(c(3,1,2,2,1,3,3,2,1), ncol = 3, byrow = TRUE)
> v1 %*% t(v2)
[,1] [,2] [,3]
[1,] 11 13 10
又は潜在的に速く(?crossprod
を参照):
> tcrossprod(v1, v2)
[,1] [,2] [,3]
[1,] 11 13 10
それはすることは困難です質問の表記がRではないので、ここで最高の答えは何ですか、それはmatlabにあります。質問者がベクトル、1行行列、または1つの列行列に複数の表記法を与えたい場合は、質問するのが難しいです。
この質問に対する別の回答は、単純に乗算の順序を変更することです。
v1 <- c(1,2,3)
v2 <- matrix(c(3,1,2,2,1,3,3,2,1), ncol = 3, byrow = TRUE)
v2 %*% v1
これは、1つの行行列ではなく1つの列の回答を生成します。