Matlab의 Z=dist(W,P)
의 작동 방식을 아는 사람이 있습니까? Matlab documentation은 가중치 행렬 W를 사용하는 알고리즘을 지정하지 않습니다.Matlab은 유클리드 거리 함수에서 어떻게 가중치를 적용합니까?
나는 옥타브를 사용하여 동작을 모방하려고합니다. 지금까지이 stack overflow post은 Octave의 Z=squareform(pdist(P'))
이 Matlab의 Z=dist(P)
과 동일하다는 것을 증명할 수있었습니다. 나는 또한 루프에 대한 몇 가지 사용 Z의 요소를 지정할 수 있습니다 :
function z=dist(w,p)
for i=1:size(p,2)
for j=1:size(p,2)
u=p(:,i);
v=p(:,j);
z(i,j)=sum((u-v).^2).^0.5;
end
end
end
그러나, 나는 가중치 행렬에 모든 온라인 문서를 찾을 수없는 걸, W. 단순히 때문에 W에 의해 squareform(pdist(P'))
의 출력을 곱 수 없습니다 치수가 일치하지 않습니다. 나는 W를 예감시키기 위해 시도했다. sqrt(W*(P(:,1)-P(:,2)).^2)
, this stack overflow post과 같으나 출력 크기가 잘못되었습니다. 당신이 제공 할 수있는 모든 도움에 미리
P=
9 7 10
10 1 10
2 3 2
10 6 10
W=
10 9 5 8
5 2 10 10
>> D = dist(P)
0 10.0995 1.0000
10.0995 0 10.3441
1.0000 10.3441 0
>> D = dist(W,P)
3.8730 9.0000 3.7417
12.0000 8.3666 12.3693
감사 :
여기 matlab에를 사용하는 예입니다!
음 ...이 대답은 matlab 설치에 대한 액세스 권한이있는 경우에만 도움이됩니다. – kaefert