I\'m trying to do a nearest neighbor search that yields a single point as the single \"nearest neighbor\" to another point in matlab.
I\'ve got the following data:
If you're working without Toolboxes, you can construct a simple distance formula yourself:
xx = [0:364]; % Not sure what your limits were so just making some up here
yy = [0:264];
[X, Y] = meshgrid(xx,yy);
dxf = [221.7, 109.1]; % Again just pulling numbers from nether regions
G = [X(:),Y(:)];
d = sqrt( sum( (G-dxf).^2, 2) );
[minDist, idxMinDist] = min(d);
solution = G(idxMinDist,:);
You can modify the limits for xx and yy to fit your specific setup accordingly.
You should first convert your grid to an n-by-2
matrix (if you created this using meshgrid, it's simply G = [XX(:) YY(:)]
), you can then try it with pdist2 if you have the Statistics and Machine Learning Toolbox (which you do):
[D,I] = pdist2(P, G, 'euclidian', 'Smallest', 1);
Where G
is the grid and P
is your m-by-2
array of points to test.