Main Content

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의 인덱스 값을 할당합니다. 예를 들어, desearchn(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 이전에 개발됨