multiplier deux vecteurs - je veux un scalaire, mais je reçois un vecteur?

C'est mon code:

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

Je m'attends à ce que le résultat soit 14, depuis un vecteur colonne multipliée par un vecteur ligne avec raccord dimensions doivent être un skalar.

Cependant, j'obtiens:

d'impression (a*t(a))

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

[1,]    1    4    9

Donc les sommes partielles au lieu de la totalité de la somme. Comment puis-je résoudre ce problème?

Un vecteur colonne multipliée par un vecteur ligne avec raccord dimensions donne une (n x n) de la matrice: matrix(a) %*% t(a)
Si vous ne voulez pas ce crossprod retourne alors vous avez besoin pour expliquer avec plus de détails ce que vous les attendez. Notez que crossprod peut être utiliser pour construire ce qui est des autres domaines est connu comme le produit scalaire ou "produit scalaire". crossprod(1:3) retourne la somme apparemment vous le souhaitez.

OriginalL'auteur user1862770 | 2012-12-08