Possible error with dot product
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
William Kett
le 22 Sep 2021
Commenté : William Kett
le 4 Oct 2021
There appears to be an issue with the dot function which computes the dot product between 2 vectors. Either that, or I am using it incorrectly.
xa = -4.2162; % x-component of vector a
ya = -7.1335;% y-component of vector a
xb = -1.4941e-08; % x-component of vector b
yb = 1.7922e-08; % y-component of vector b
% dot product = a_i*b_i + a_j*b_j =|a|*|b|*cos(theta)
%% Get values for above formulae
dotprod1 = xa * xb + ya * yb
theta = rad2deg(acos((xa*xb+ya*yb)/(sqrt(xa^2+ya^2)*sqrt(xb^2+yb^2))));
dotprod2 = sqrt(xa^2+ya^2)*sqrt(xb^2+yb^2) * cos(deg2rad(theta))
dotprod1 == dotprod2 % Should give 1
%% Using the dot function
% a = a_i + a_j
% b = b_i + b_j
dotprod3 = dot(xa+ya,xb+yb) % dot of full vectors a and b
dotprod1 == dotprod3
Why isn't dot producing the same value?
0 commentaires
Réponse acceptée
Geoff Hayes
le 22 Sep 2021
William - from dot, this function returns the scalar dot product of the two input vectors. So in your case, the
dot(xa+ya,xb+yb)
is equivalent to
(xa + ya) * (xb + yb)
which is not the same as what you calculated previously as
dotprod1 = (xa * xb) + (ya * yb) % I added the brackets
Note also that your code and comment
dotprod1 == dotprod2 % Should give 1
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Define Shallow Neural Network Architectures dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!