exponenta event banner

nearestNeighbor

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

Описание

пример

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

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

пример

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

пример

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

Примеры

свернуть все

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

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

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, координаты y и (возможно) координаты z точек запроса.

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Представлен в R2013a