Computing Euclidean distance between 2 points

3 Ansichten (letzte 30 Tage)
Elysi Cochin
Elysi Cochin am 3 Mai 2022
Bearbeitet: Bruno Luong am 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?

Akzeptierte Antwort

Rik
Rik am 3 Mai 2022
Bearbeitet: Rik am 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

Weitere Antworten (1)

Bruno Luong
Bruno Luong am 3 Mai 2022
Bearbeitet: Bruno Luong am 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

Kategorien

Mehr zu Computational Geometry finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by