find the minimum distances of all points from neighboring points

3 Ansichten (letzte 30 Tage)
HJ
HJ am 4 Jun. 2021
Beantwortet: darova am 5 Jun. 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?

Akzeptierte Antwort

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

Weitere Antworten (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 4 Jun. 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 Kommentar
HJ
HJ am 4 Jun. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Statistics and Machine Learning Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by