주요 콘텐츠

dsearchn

최근접 점 탐색

설명

k = dsearchn(P,PQ)는 유클리드 거리로 측정했을 때 P에 있는 점 중에서 PQ의 쿼리 점에 가장 가까운 점들의 인덱스를 반환합니다.

예제

k = dsearchn(P,T,PQ)는 들로네 삼각분할 T를 사용하여 P에 있는 가장 가까운 점들의 인덱스를 반환합니다. 여기서 T = delaunayn(P)입니다. PQ에 포함된 점의 개수가 많을 때 T를 사용하면 탐색 성능이 향상됩니다.

k = dsearchn(P,T,PQ,outind)P의 점 중에서 가장 가까운 점들의 인덱스를 반환하지만, P의 컨벡스 헐 외부에 있는 쿼리 점에 대해서는 outind의 인덱스 값을 할당합니다. 예를 들어, dsearchn(P,T,PQ,Inf)는 컨벡스 헐 외부에 있는 쿼리 점에 대해 Inf의 인덱스 값을 반환합니다.

[k,dist] = dsearchn(___)P의 각 점에서 PQ의 대응하는 쿼리 점까지의 거리도 반환합니다.

예제

예제

모두 축소

2차원 데이터 점으로 구성된 행렬 P와 2차원 쿼리 점으로 구성된 행렬 PQ를 만듭니다. 각 쿼리 점에 가장 가까운 데이터 점을 찾고 해당 거리를 계산합니다.

rng default;
P = rand([10 2]);
PQ = [0.5 0.5; 0.1 0.7; 0.8 0.7];
[k,dist] = dsearchn(P,PQ);

데이터 점과 쿼리 점을 플로팅하고, 각 쿼리 점에 가장 가까운 데이터 점을 강조 표시합니다.

plot(P(:,1),P(:,2),'ko')
hold on
plot(PQ(:,1),PQ(:,2),'*g')
hold on
plot(P(k,1),P(k,2),'*r')
legend('Data Points','Query Points','Nearest Points','Location','sw')

Figure contains an axes object. The axes object contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent Data Points, Query Points, Nearest Points.

거리를 표시합니다.

dist
dist = 3×1

    0.2349
    0.2586
    0.1825

입력 인수

모두 축소

점으로, n차원의 점을 m개 포함하는 m×n 행렬로 지정됩니다. 예를 들어, P = [0 0 0; 1 1 1]은 점 (0,0,0)과 점 (1,1,1)을 가리키는 3차원 좌표를 나타냅니다.

쿼리 점으로, n차원의 점을 r개 포함하는 r×n 행렬로 지정됩니다. 예를 들어, 2×3 행렬 PQ = [-1 -1 -1; 2 2 2]는 두 개의 쿼리 점 (-1,-1,-1)과 (2,2,2)을 가리키는 3차원 좌표를 나타냅니다.

PQ의 열 개수는 P의 열 개수와 일치해야 합니다.

들로네 삼각분할로, delaunayn 함수로 반환된 행렬로 지정됩니다.

외부 인덱스 값으로, 컨벡스 헐 외부에 있는 쿼리 점에 대한 스칼라 인덱스 값으로 지정됩니다.

outval[]로 지정된 경우 출력값 k는 구문 k = dsearchn(P,T,PQ)와 동일합니다.

출력 인수

모두 축소

인덱스로, 쿼리 점에 가장 가까이 있는 데이터 점의 인덱스를 포함하는 열 벡터로 반환됩니다. k의 길이는 쿼리 점의 개수와 같습니다.

거리로, 각 쿼리 점과 가장 가까운 입력 점 사이의 유클리드 거리를 포함하는 열 벡터로 반환됩니다. dist의 길이는 쿼리 점의 개수와 같습니다.

참고 문헌

[1] Barber, C.B., D.P. Dobkin, and H.T. Huhdanpaa. “The Quickhull Algorithm for Convex Hulls.” ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p 469–483.

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨