Bonjour
Pour effectuer le produit scalaire de 2 vecteurs A = (a1, a2, a3) et B = (b1, b2, b3) il suffit de faire l’opération suivante:
A.B = A*B' = a1*b1 + a2*b2 + a3*b3.
Maintenant supposons que l'on ait A et B deux tableau de vecteurs:
A =
a11 a12 a13
a21 a22 a23
a31 a32 a33
...
an1 an2 an3
B =
b11 b12 b13
b21 b22 b23
b31 b32 b33
...
bn1 bn2 bn3
Je souhaite trouver la formule (magique!?!) qui me donnerait le produit scalaire entre les lignes de A et B (soit an*bn') sans avoir recours a une boucle du style:
for j=1:n
AdotB(j) = A(j, : )*B(j, : )'
end
En fait je voudrais récupérer la diagonale de la matrice A*B' dans un vecteur de dimension nx1 mais mon 'n' est tellement grand que ça prend un temps fou le produit des matrices avec en plus un risque de faire déborder la mémoire.
Merci
Partager