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 из 2D данных указывает и матричный PQ из 2D точек запроса. Найдите самую близкую точку данных к каждой точке запроса и вычислите соответствующие расстояния.

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')

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

dist
dist = 3×1

    0.2349
    0.2586
    0.1825

Входные параметры

свернуть все

Точки в виде m-by-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] Стригите, C.B., Д.П. Добкин и Х.Т. Хухдэнпэа. “Алгоритм Quickhull для Выпуклых оболочек”. Транзакции ACM на Mathematical Software, Издании 22, № 4, декабрь 1996, p 469–483.

Смотрите также

|

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