nearest neighbour search for scattered data

10 次查看(过去 30 天)
Is there any way to find 10 nearest neighbours for each point in a scattered data set? Basically I would like to do the knn search with a number of points instead of radius.

回答(1 个)

Ameer Hamza
Ameer Hamza 2020-9-30
One method is to calculate pairwise distances using pdist(), and the using mink() to calculate the ten closest points.
x = rand(100,1); % generate 100 random points
y = rand(100,1);
dists = squareform(pdist([x y]));
dists(dists==0) = inf; % so that the point does not match with itself;
[~, I] = mink(dists, 10, 2); % 100x10 matrix
Matrix I contain 100 rows (equal to the number of points) and ten columns (each entry is the index of the closest point).

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by