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

カテゴリ

Help Center および File ExchangeSmoothing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by