MATLAB: K-NN search. What is the difference between these 2-codes

classificationk-nn

{
The program for k-NN search in MATLAB.
load fisheriris %inbuilt data set provided in MATLAB.
x = meas(:,3:4);
gscatter(x(:,1),x(:,2),species)
set(legend,'location','best')
newpoint = [5 1.45];
line(newpoint(1),newpoint(2),'marker','x','color','k',...
'markersize',10,'linewidth',2)
[n,d] = knnsearch(x,newpoint,'k',10) %my doubt is here.
line(x(n,1),x(n,2),'color',[.5 .5 .5],'marker','o',...
'linestyle','none','markersize',10)
%modified program for my requirement with different data set. x and z are the two variables with 24 elements in each.
load stroke
gscatter(x,z,species);
set(legend,'location','best')
newpoint=[115,150];
line(newpoint(1),newpoint(2),'marker','x','co lor','k',...
'markersize',10,'linewidth',2);
[n,d] = knnsearch(x,newpoint,'k',10) % when i run , it gives error here. what is the difference between the original code and modified code ? infact 'newpoint' in the original program is a vector.
line(x(n,1),x(n,2),'color',[.5 .5 .5],'marker','o',...
'linestyle','none','markersize',10)

Best Answer

You have supplied only x, not [x z], as the first argument to knnsearch. Your newpoint vector, on the other hand, has two columns.