用desearch函数进行最近点搜索,该函数的语法格式为:
K=dsearch(x,y,TRI,xi,yi) 返回距离点(xi,yi)最近的点的编号。该函数需要x,y组成的点集的三角网TRI,用delaunay函数获取该三角网。如果xi和yi是矢量,则K是相同大小的矢量。
K=dsearch(x,y,TRI,xi,yi,S) 使用稀疏矩阵S,使得不必每次都计算它:
S=sparse(TRI(:,[1 1 2 2 3 3]),TRI(:,[2 3 1 3 1 2]),1,nxy,nxy)
其中,nxy=prod(size(x))
用dsearchn函数进行N维最近点搜索,该函数的调用格式为:
k=dsearchn(X,T,XI) 返回距离XI中每个点最近的点在X中的编号k。X是一个m×n的矩阵,表示n维空间中的m个点。XI是一个p×n的矩阵,表示n维空间中的p个点。T是一个numt×(n+1)的矩阵,表示数据X的剖分,用delaunayn函数算得。输出k是一个长度为p的列矢量。
k=dsearchn(X,T,XI,outval) 返回距离XI中每个点最近的点在X中的编号k,除非某个点位于凸包以外。如果XI(J,:)位于凸包以外,则K(J)用double型标量outval表示。常常用Inf表示outval。如果outval为[],则k的计算与k=dsearchn(X,T,XI)相同。
k=dsearchn(X,XI) 在没有使用剖分的情况下进行搜索。当X较大,XI较小时,使用这种方法更快,需要的内存更少。
[k,d]=dsearchn(X,…) 还返回到最近点的距离d。d是一个长度为p的列矢量。