最近邻域法

Nearest 用来在一个列表中寻找与给定数据点最接近的元素.

Nearest[{elem1,elem2,...},x]给出与 x 最接近的 的列表
Nearest[{elem1->v1,elem2->v2,...},x]
给出与 x 最接近的对应于
Nearest[{elem1,elem2,...}->{v1,v2,...},x]
给出相同的结果
Nearest[{elem1,elem2,...}->Automatic,x]
取值为整数 1, 2, 3, ...
Nearest[data,x,n]给出与 x 最接近的 n 个元素
Nearest[data,x,{n,r}]给出在半径 r 内,与 x 最接近的 n 个元素
Nearest[data]产生可以重复应用于不同 xNearestFunction[...]

Nearest 函数.

Nearest 对于数值列表,张量或者字符串列表适用.

这里寻找与 4.5 最接近的元素.
In[1]:=
Click for copyable input
Out[1]=
这里寻找与 4.5 最接近的3个元素.
In[2]:=
Click for copyable input
Out[2]=
这里寻找在半径 2 内,与 4.5 最接近的所有元素.
In[3]:=
Click for copyable input
Out[3]=
这里寻找在二维空间中与 最接近的点.
In[4]:=
Click for copyable input
Out[4]=
这里寻找与 "cat" 最接近的字符串.
In[5]:=
Click for copyable input
Out[5]=

基于规则的数据语法允许用户使用最近元素来返回它们的标签.

这里对二维点加标签.
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=
这里使用连续整数对元素加标签.
In[8]:=
Click for copyable input
Out[8]=

如果 Nearest 要重复使用在相同的数值数据上,用户可以通过首先产生 NearestFunction 提高效率.

这里在二维空间内产生 10,000 个点的集合,以及 NearestFunction.
In[9]:=
Click for copyable input
Out[9]=
这里在集合中寻找与 10 个目标点最接近的点.
In[10]:=
Click for copyable input
Out[10]=
如果不使用 NearestFunction,则需要花费更长的时间.
In[11]:=
Click for copyable input
Out[11]=
In[12]:=
Click for copyable input
Out[12]=
选项名
默认值
DistanceFunctionAutomatic使用的距离度量

Nearest 的选项.

对于数值数据,默认情况下 Nearest 使用 EuclideanDistance. 对于字符串,则使用 EditDistance.

New to Mathematica? Find your learning path »
Have a question? Ask support »