これは私のコードです:
a <-c(1,2,3)
b <-t(a)
print(a*b)
列ベクトルに適切な次元の行ベクトルを掛けたものはスカラーである必要があるため、結果は14になると思います。
ただし、次のようになります。
印刷(a * t(a))
[,1] [,2] [,3]
[1,] 1 4 9
したがって、全体の合計ではなく、部分的な合計。どうすればこれを修正できますか?
2つの問題、間違った順序での乗算、および間違った乗算関数。
> print(t(a)%*%a)
[,1]
[1,] 14
同等に:
> a=matrix(c(1,2,3),ncol=3)
> print (a %*% t(a))
[,1]
[1,] 14
これa
は、1行3列のマトリックスです。
見?"%*%"
て、?"*"
本質的に必要なのが製品の合計である場合、必要なのはsum(a*a)
あなたは単にこれを行うことができます、
> a <-c(1,2,3)
> b <-t(a)
> b %*% a
ここで%*%
は、行列積として機能します。
単にこれを行う
a <-c(1,2,3)
> b<-t(a)
> b
> t(b)
それから
sum(a * t(b))[1] 14