find the minimum distances of all points from neighboring points

4 vues (au cours des 30 derniers jours)
HJ
HJ le 4 Juin 2021
Réponse apportée : darova le 5 Juin 2021
When there are a lot of points, I want to find the minimum distances of all points from neighboring points.
It's too slow right now because there are so many dots.
distances = [];
for i = 1:k
for j = 1:k
if i==j
distances(i,j) = 100000;
else
distances(i,j) = pdist2(blobMeasurements(i).Centroid, blobMeasurements(j).Centroid);
end
end
end
[distances_min, distances_min_index] = min(distances);
I need to find the distance from a point to the nearest point
Also, I have to calculate this process for every point.
Is there a good way?

Réponse acceptée

darova
darova le 5 Juin 2021
Program is slow because of pre-allocation and calling pdist2 everytime
try this
D = pdist2(centroid,centroid);
D = D + eye(size(D))*1E5;

Plus de réponses (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 4 Juin 2021
Here is a nice discussion on this issue with some well developed scripts:
https://www.mathworks.com/matlabcentral/answers/309497-finding-minimum-distance-between-two-points?s_tid=answers_rc1-2_p2_MLT
  1 commentaire
HJ
HJ le 4 Juin 2021
It's a good resource, but the content is different.
I need to find the distance from a point to the nearest point
Also, I have to calculate this process for every point.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by