exponenta event banner

dsearchn

Поиск ближайшей точки

Описание

пример

k = dsearchn(P,PQ) возвращает индексы ближайших точек в P в точки запроса в PQ измеряется в евклидовом расстоянии.

k = dsearchn(P,T,PQ) возвращает индексы ближайших точек в P с помощью триангуляции Делоне T, где T = delaunayn(P). Обеспечение T может улучшить производительность поиска, когда PQ содержит большое количество точек.

k = dsearchn(P,T,PQ,outind) возвращает индексы ближайших точек в P, но присваивает значение индекса outind для точек запроса, которые находятся вне выпуклого корпуса P. Например, desearchn(P,T,PQ,Inf) возвращает значение индекса, равное Inf для точек запроса за пределами выпуклого корпуса.

пример

[k,dist] = dsearchn(___) также возвращает расстояние от каждой точки в P к соответствующей точке запроса в PQ.

Примеры

свернуть все

Создание матрицы P точек данных 2-D и матрицы PQ 2-D точек запроса. Найдите ближайшую точку данных к каждой точке запроса и вычислите соответствующие расстояния.

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. The axes contains 3 objects of type line. These objects represent Data Points, Query Points, Nearest Points.

Отображение расстояний.

dist
dist = 3×1

    0.2349
    0.2586
    0.1825

Входные аргументы

свернуть все

Точки, заданные как матрица m-на-n, содержащая m точек размера n. Например, P = [0 0 0; 1 1 1] представляет координаты 3-D для точек (0,0,0) и (1,1,1).

Точки запроса, заданная как матрица r-by-n, содержащая точки r размерности n. Например, матрица 2 на 3 PQ = [-1 -1 -1; 2 2 2] представляет координаты 3-D для двух точек запроса (-1, -1, -1) и (2,2,2).

Количество столбцов в PQ должно соответствовать количеству столбцов в P.

Триангуляция Делоне, заданная как матрица, возвращаемая delaunayn функция.

Значение внешнего индекса, указанное как значение скалярного индекса для точек запроса вне выпуклого корпуса.

Если outval указывается как [], то выход k эквивалентен синтаксису k = dsearchn(P,T,PQ).

Выходные аргументы

свернуть все

Индексы, возвращаемые в виде вектора столбца, содержащего индексы точек данных, ближайших к точкам запроса. Длина k равно количеству точек запроса.

Расстояние, возвращаемое в виде вектора столбца, содержащего евклидовы расстояния между каждой точкой запроса и ближайшей точкой ввода. Длина dist равно количеству точек запроса.

Алгоритмы

dsearchn основан на Qhull [1]. Сведения о Qhull см. в разделе http://www.qhull.org/. Сведения об авторских правах см. в разделе http://www.qhull.org/COPYING.txt.

Ссылки

[1] Барбер, С.Б., Д. П. Добкин и Х. Т. Хухданпаа. «Алгоритм Квикхолла для выпуклых корпусов.» ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p. 469-483.

Представлен до R2006a