2014-12-17 2 views
0

맞춤 거리가있는 matlab에서 링크 기능을 사용하고 싶습니다.맞춤 거리와의 연결 사용

내 거리 함수 형태이다 : 그래서

matrix = rand(132,18) 

거리 벡터 [1x8646];

D_matrix = squareform(Distance,'tomatrix'); 

것이다 소정

Distance = pdist(matrix,@mydistance); 

되는 모든 페어를 contaning 매트릭스 132x132 행간 거리는 matrix

mydistancelinkage에 어떻게 포함시킬 수 있습니까?

답변

0

는이 같은 linkage에 전화를 사용할 수 있습니다 http://www.mathworks.com/help/stats/linkage.html : 여기에 설명 된대로 '하나'는 또한 다른 클러스터의 수 있습니다

Z = linkage(Data,'single','@mydistance') 

이 방법을 병합합니다.

다른 말로하면, 함수 핸들을 문자열에 넣고 3 번째 인수로 linkage에 전달하면됩니다. 그러나 사용자 정의 거리 함수를 사용하는 동안 linkage'savememory' 함수를 사용할 수 없습니다. 이로 인해 300,000 x 6 데이터 세트에 약간의 좌절감이 생깁니다. 솔루션은 유클리드 거리가 정의되고 의미있는 공간으로 투영하는 것이지만 그것이 어떻게 진행되는지 보게 될 것이라고 생각합니다.

0

Imperssonator이 시사하는 것처럼

tree = linkage(Data,'single','@mydistance') 

을 사용하는 외에, 당신은 또한

dissimilarity = pdist(Data,@mydistance); 
tree = linkage(dissimilarity,'single'); 

후자는 데이터 @mydistance 인수로 객체를 사용하여 개체의 배열이 될 수 있도록하는 이점을 갖고 사용할 수 있습니다.