2013-03-14 2 views
3

나는이 두 지점 유클리드 거리

x1 = (a1,b1,c1,d1,e1); //5 dimensional point 
x2 = (a2,b2,c2,d2,e2); //5 dimensional point 

그래서 유클리드의 DIST를 계산하기 위해이 올바른 방법입니다

?

d = sqrt(sqr(a1-a2)+sqr(b1-b2)+sqr(c1-c2)+sqr(d1-d2)+sqr(e1-e2)) 

pdist(X)이 나에게도 동일한 결과를 줄지 궁금한가요?

여기서 X = (x1,x2)X은 5x2 매트릭스입니다.

또한 정사각형 형태의 결과를 원합니다.

답변

6

를 사용합니다. 일반적으로 맞습니다. 올바른 Matlab 구문은 아니지만 올바른 수학을 가지고 있습니다. 여기

d1 = sqrt((X(1,1)-X(2,1))^2+(X(1,2)-X(2,2))^2+(X(1,3)-X(2,3))^2+(X(1,4)-X(2,4))^2+(X(1,5)-X(2,5))^2) 

이 방정식의 서식을 더 관용적 몇 가지 방법은 다음과 같습니다 여기

X = [1 3 4 2 1; 8 2 3 5 4] 

당신이 작성하는 한 식의 구문입니다 : 당신이 설명하는대로

어떤 X를 감안할 때 : 여기

d2 = sqrt(sum( (X(1,:) - X(2,:)).^2 )) 
d3 = sqrt(sum(  diff(X,[],1).^2)) 

그것을

를 계산하는 기능적인 방법
euclidDistance = @(x,y) sqrt(sum((x-y).^2)); 
d4 = euclidDistance(X(1,:), X(2,:)) 

주, 이러한 방법 모두 같은 결과를 반환 : 두 벡터 사이의 유클리드 거리가 차이의 두 규범이기 때문에 d1=d2=d3=d4 = 8.3066

3

예. 그것은 올바른 방법입니다.

MATLAB은이 답변 많이 있습니다 pdist2(x1,x2,'euclidean')

+0

pdist가 아닌 pdist2가 있습니다. 그것에 대해 당신의 의견은 무엇입니까? – Christina

+0

http://www.mathworks.co.uk/help/stats/pdist2.html –

3

을, 당신은 사용할 수 있습니다

d = norm(x1 - x2, 2) 

에 그것을 계산하십시오. 두 번째 인수가 누락되면 2- 놈이 가정됩니다.

+0

또는 단지 norm (x1-x2)입니다. 왜냐하면 2-norm이 기본값이기 때문입니다. – Chris

+0

@Chris 예, 기본 2 칙이 가정됩니다. – Dzanvu

+0

그러나 2-norm은 행렬의 경우 유클리드와 상당히 다릅니다. – Christina

관련 문제