[Idx,D] = knnsearch(___) additionally returns the matrix D, using any of the input arguments in the previous syntaxes. D contains the distances between each observation in Y and the corresponding closest observations in X.
使用先前语法中的任何输入参数返回矩阵D。D包含Y中每个观测值与X中对应的最近观测值之间的距离。
举例:
Load Fisher's iris data set.
load fisheriris
X= meas(:,3:4); %Measurements of original flowers
Y= [5 1.45;6 2;2.75 .75]; % New flower data
Perform a knnsearch between X and the query points Y using Minkowski and Chebychev distance metrics.
使用Minkowski和chebychev距离度量在x和查询点y之间执行 knnsearch。
[mIdx,mD] = knnsearch(X,Y,'K',10,'Distance','minkowski','P',5);
[cIdx,cD] = knnsearch(X,Y,'K',10,'Distance','chebychev');
Visualize the results of the two nearest neighbor searches. Plot the training data. Plot the query points with the marker X. Use circles to denote the Minkowski nearest neighbors. Use pentagrams to denote the Chebychev nearest neighbors.
可视化两个最近邻搜索的结果。绘制训练数据。用标记x绘制查询点。用圆表示Minkowski最近的邻居。用五角星表示切比雪夫最近的邻居。
gscatter(X(:,1),X(:,2),species);
line(Y(:,1),Y(:,2),'Marker','x','Color','k',...
'Markersize',10,'Linewidth',2,'Linestyle','none');
line(X(mIdx,1),X(mIdx,2),'Color',[.5 .5 .5],'Marker','o',...
'Linestyle','none','Markersize',10);
line(X(cIdx,1),X(cIdx,2),'Color',[.5 .5 .5],'Marker','p',...
'Linestyle','none','Markersize',10);
legend('setosa','versicolor','virginica','query point',...
'minkowski','chebychev','Location','best');
来源:https://ww2.mathworks.cn/help/stats/knnsearch.html?searchHighlight=knnsearch&s_tid=doc_srchtitle