MATLAB 帮助中心
最靠近指定点的顶点
ID = nearestNeighbor(TR,P)
ID = nearestNeighbor(TR,x,y)
ID = nearestNeighbor(TR,x,y,z)
[ID,d] = nearestNeighbor(___)
ID = nearestNeighbor(TR,P) 返回最接近 P 中查询点的顶点的 ID。矩阵 P 中的每行都包含一个查询点的坐标。
ID
TR
P
示例
ID = nearestNeighbor(TR,x,y) 将二维查询点的 x 坐标和 y 坐标指定为单独的列向量。
x
y
ID = nearestNeighbor(TR,x,y,z) 将三维查询点的 x 坐标、y 坐标和 z 坐标指定为单独的列向量。
z
对于上述任意语法,[ID,d] = nearestNeighbor(___) 还会返回每个查询点与其最近邻点之间的欧几里德距离。
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
计算二维三角剖分中的最近邻点。
创建二维三角剖分。
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 = 2×1 1.1180 1.5811
三角剖分表示,指定为标量 triangulation 或 delaunayTriangulation 对象。nearestNeighbor 不支持具有约束边的 delaunayTriangulation 对象。
triangulation
delaunayTriangulation
nearestNeighbor
数据类型: triangulation | delaunayTriangulation
查询点,指定为包含两列或三列的矩阵。P 包含查询点的 x 坐标和 y 坐标,还可能包含 z 坐标。
数据类型: double
double
查询点的 x 坐标,指定为列向量。
查询点的 y 坐标,指定为列向量。
查询点的 z 坐标,指定为列向量。
查询点的最近邻点的顶点 ID,以列向量形式返回。顶点 ID 是 Points 属性中对应顶点的行号。
Points
从查询点到其最近邻点的欧几里德距离,以长度与 ID 相同的列向量形式返回。
全部展开
backgroundPool
ThreadPool
在 R2013a 中推出
delaunayTriangulation | triangulation
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处