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
在X
和Y
之间执行knnsearch
以查找最近邻居的索引。
Idx = knnsearch(X,Y);
找出年龄和体重在X
项上与Y
项最接近的患者。
X(Idx,:)
ans = 5×2
25 171
25 171
39 164
49 170
50 172