nearestNeighbor

Самая близкая вершина

Синтаксис

ID = nearestNeighbor(TR,P)
ID = nearestNeighbor(TR,x,y)
ID = nearestNeighbor(TR,x,y,z)
[ID,d] = nearestNeighbor(___)

Описание

пример

ID = nearestNeighbor(TR,P) возвращает идентификаторы вершин, самых близких к точкам запроса в P. Каждая строка в матричном P содержит координаты точки запроса.

ID = nearestNeighbor(TR,x,y) задает x - координаты и y - координаты 2D точек запроса как отдельные вектор-столбцы.

пример

ID = nearestNeighbor(TR,x,y,z) задает x - координаты, y - координаты, и z - координаты 3-D точек запроса как отдельные вектор-столбцы.

пример

[ID,d] = nearestNeighbor(___) также возвращает Евклидово расстояние между каждой точкой запроса и ее самым близким соседом к любому из предыдущих синтаксисов.

Примеры

свернуть все

Вычислите самых близких соседей в 3-D триангуляции.

Создайте 3-D Триангуляцию Делоне.

P = [1 1 0; -1 1 0; -1 -1 0; 1 -1 0; 0 0 2; 0 0 0];
TR = delaunayTriangulation(P);

Постройте триангуляцию и точку запроса.

tri = TR(:,:);
trisurf(tri,P(:,1),P(:,2),P(:,3),'FaceAlpha',0.5)
hold on
x = 0;
y = -0.5;
z = 2;
plot3(x,y,z,'k*')

Найдите координаты самого близкого соседа точки запроса.

ID = nearestNeighbor(TR,x,y,z);
C = TR.Points(ID,:)
C = 1×3

     0     0     2

Вычислите самых близких соседей в 2D триангуляции.

Создайте 2D триангуляцию.

C = [5 3 1; 3 2 1; 3 4 2; 4 6 2];
TP = [2.5 8.0; 6.5 8.0; 2.5 5.0; 6.5 5.0; 1.0 6.5; 8.0 6.5];
TR = triangulation(C,TP);

Задайте две точки запроса.

P = [2 4; 6 6.5];

Постройте триангуляцию и точки запроса.

triplot(TR)
hold on
plot(P(:,1),P(:,2),'k*')
ylim([1.5 8.5])
xlim([0.5 8.5])

Найдите самых близких соседей точек запроса и расстояний между ними.

[ID,d] = nearestNeighbor(TR,P);

Подсветите в красном точки в триангуляции, которые являются самыми близкими соседями точек запроса.

N = TP(ID,:);
plot(N(:,1),N(:,2),'*r')

Отобразите расстояние между каждой точкой запроса и ее самым близким соседом.

d
d = 2×1

    1.1180
    1.5811

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

свернуть все

Представление триангуляции, заданное как скалярный объект triangulation или delaunayTriangulation. nearestNeighbor не поддерживает объекты delaunayTriangulation с ограниченными ребрами.

Типы данных: triangulation | delaunayTriangulation

Точки запроса, заданные как матрица с 2 или 3 столбцами. P содержит x - координаты, y - координаты, и (возможно) z - координаты точек запроса.

Типы данных: double

x- точек запроса, заданных как вектор-столбец.

Типы данных: double

y- точек запроса, заданных как вектор-столбец.

Типы данных: double

z- точек запроса, заданных как вектор-столбец.

Типы данных: double

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

свернуть все

Идентификаторы вершины самых близких соседей точек запроса, возвращенных как вектор-столбец. ID вершины является номером строки соответствующей вершины в свойстве Points.

Типы данных: double

Евклидовы расстояния от точек запроса до их самых близких соседей, возвращенных как вектор-столбец та же длина как ID.

Типы данных: double

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

|

Введенный в R2013a