Computing Euclidean distance between 2 points

1 回表示 (過去 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 ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by