Count number of points around points in a list
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Luis Isaac
am 28 Mär. 2019
Beantwortet: Luis Isaac
am 28 Mär. 2019
Dear;
I have two list of points defined by to array vectors xyz1 and xyz2, both of them are Nx3, where N is the number of points (different in xyz1 and xyz2) and 3 are the cartesian coordinates.
I would like to count the number of xyz2 particles in a neighborhood of each xyz1 particles, where the neighborhood is defined as a sphere of radio "h" around each element in xyz1.
I code the following:
Countxyz=zeros(size(xyz1,1),1);
h2=h*h;
for i=1:size(xyz1,1)
Dstxyz=sum((xyz2-repnat(xyz1(i,:),1)).^2,2);
Countxyz(i)=sum(Dstxyz<=h2);
end
As the number of elements in both xyz1 and xyz2 are large (more tham 10000 or 1000000) the code takes time to calculate the counts.
Is there any way to vectorize the main for loop and speed up the code?
Thanks in advance,
0 Kommentare
Akzeptierte Antwort
KSSV
am 28 Mär. 2019
I feel the following functions will be help ful for you. Read about knnsearch, rangesearch.
0 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Cell Arrays 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!