Computing Euclidean distance between 2 points

2 vues (au cours des 30 derniers jours)
Elysi Cochin
Elysi Cochin le 3 Mai 2022
Modifié(e) : Bruno Luong le 3 Mai 2022
I found a code computing Euclidean distance as
diff = q - p;
dist = sqrt(diff * diff');
is there any difference from the standard Euclidean distance formula, why transpose is taken?

Réponse acceptée

Rik
Rik le 3 Mai 2022
Modifié(e) : Rik le 3 Mai 2022
By doing a matrix multiplication on a vector, you implicitly take the sum over all elements.
Note that this will only work if both p and q are row vectors.
q=rand(1,5);p=rand(1,5);
diff=q-p;
diff * diff' , sum(diff .* diff)
ans = 0.6624
ans = 0.6624

Plus de réponses (1)

Bruno Luong
Bruno Luong le 3 Mai 2022
Modifié(e) : Bruno Luong le 3 Mai 2022
For a row vector d
% sum(d.^2)
is equal to
% d*d'
Example
d=randi(10,1,3)
d = 1×3
9 6 5
sum(d.^2)
ans = 142
d*d'
ans = 142

Catégories

En savoir plus sur Computational Geometry 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!

Translated by