Computing Euclidean distance between 2 points

조회 수: 2(최근 30일)
Elysi Cochin
Elysi Cochin 2022년 5월 3일
편집: Bruno Luong 2022년 5월 3일
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?

채택된 답변

Rik
Rik 2022년 5월 3일
편집: Rik 2022년 5월 3일
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

추가 답변(1개)

Bruno Luong
Bruno Luong 2022년 5월 3일
편집: Bruno Luong 2022년 5월 3일
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

범주

Find more on Physics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by