nearestNeighbor

Вершина, ближайшая к заданной точке

Описание

пример

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

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

пример

ID = nearestNeighbor(TR,x,y,z) задает x -cordinates, y -cordinates и z -cordinates 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*')

Figure contains an axes. The axes contains 2 objects of type patch, line.

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

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

     0     0     2

Вычислите ближайшие соседи в 2-D триангуляции.

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

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

Figure contains an axes. The axes contains 2 objects of type line.

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

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

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

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

Figure contains an axes. The axes contains 3 objects of type line.

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

d
d = 2×1

    1.1180
    1.5811

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Введенный в R2013a