matlab knnsearch() 函数

功能:使用输入数据查找k近邻

语法:

Idx = knnsearch(X,Y)
Idx = knnsearch(X,Y,Name,Value)
[Idx,D] = knnsearch(___)

解释:

Idx = knnsearch(X,Y)Y中的每个查询点查找X中的最近邻居,并返回Idx中最近邻居的索引(一个列向量)。Idx的行数与Y相同。

Idx = knnsearch(X,Y,Name,Value) 使用一个或多个名称–值对参数指定的附加选项返回Idx。例如,可以指定要搜索的最近邻居的数量和搜索中使用的距离度量。Name是参数名,Value是对应的值。名称必须出现在引号内。如:“ K,10 ”—最近邻居的数量(10个),在X中为Y中的每个点找到的最近的邻居的数量。

[Idx,D] = knnsearch(___)另外返回矩阵D,使用之前语法中的任何输入参数。D包含Y中每个观测值与X中相应的最近观测值之间的距离。

举例:

load hospital;
X = [hospital.Age hospital.Weight];
Y = [20 162; 30 169; 40 168; 50 170; 60 171];   % New patients

XY之间执行knnsearch以查找最近邻居的索引。

Idx = knnsearch(X,Y);

找出年龄和体重在X项上与Y项最接近的患者。

X(Idx,:)
ans = 5×2
    25   171
    25   171
    39   164
    49   170
    50   172
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐