Filter löschen
Filter löschen

48 Dimensional Euclidean Distance.

11 Ansichten (letzte 30 Tage)
Tim Mottram
Tim Mottram am 8 Nov. 2012
Hi Guys, Hopefully this will be a quicky. If I have two points in two dimensional space I find the distance as:
sqrt((x1-x2)^2 + (y1-y2)^2)
This is all good and well, but if I want the distance when each point has 48 (or otherwise) coordinates I don't really want to type out that equation. So is there some MatLab function which will let me pass it two arrays and find the resultant distance?
Thanks in advance,
Tim.
  1 Kommentar
Tim Mottram
Tim Mottram am 8 Nov. 2012
I have found the answer, Sorry, I was being silly.
Distance = sqrt(sum((cords2-cords1).^2));

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 8 Nov. 2012
Bearbeitet: Jan am 8 Nov. 2012
Most of all the components should not be stored in x1, y1, z1, ... but is vectors x1=[1 x 48], x2=[1 x48]. Then some alternatives:
x1 = rand(1, 48);
x2 = rand(1, 48);
x12 = x2 - x1;
Dist1 = sqrt(sum(x12 .^ 2))
Dist2 = sqrt(x12 * x12.') % DOT product calculates the sum internally
Dist3 = norm(x12)

Weitere Antworten (0)

Kategorien

Mehr zu Statistics and Machine Learning Toolbox finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by