필터 지우기
필터 지우기

48 Dimensional Euclidean Distance.

조회 수: 13 (최근 30일)
Tim Mottram
Tim Mottram 2012년 11월 8일
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
Tim Mottram
Tim Mottram 2012년 11월 8일
I have found the answer, Sorry, I was being silly.
Distance = sqrt(sum((cords2-cords1).^2));

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2012년 11월 8일
편집: Jan 2012년 11월 8일
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)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics and Optimization에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by