13

これは私のコードです:

a <-c(1,2,3)
b <-t(a)
print(a*b)

列ベクトルに適切な次元の行ベクトルを掛けたものはスカラーである必要があるため、結果は14になると思います。

ただし、次のようになります。

印刷(a * t(a))

 [,1] [,2] [,3]

[1,]    1    4    9

したがって、全体の合計ではなく、部分的な合計。どうすればこれを修正できますか?

4

4 に答える 4

21

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列のマトリックスです。

?"%*%"て、?"*"

于 2012-12-08T16:34:34.707 に答える
19

本質的に必要なのが製品の合計である場合、必要なのはsum(a*a)

于 2012-12-08T17:41:13.527 に答える
1

あなたは単にこれを行うことができます、

> a <-c(1,2,3)
> b <-t(a)

> b %*% a

ここで%*%は、行列積として機能します。

于 2019-08-14T22:12:19.347 に答える
0

単にこれを行う

a <-c(1,2,3)
> b<-t(a)
> b

> t(b)

それから

sum(a * t(b))[1] 14

于 2014-07-25T14:36:18.940 に答える