# How to extract points from a 3D plot that fall within a particular distance from the center coordinate?

8 views (last 30 days)
sai sai on 18 Aug 2021
Commented: sai sai on 18 Aug 2021
Hello, I am a novice in matlab programmming. I am working on a computational project where I have a 3dimensional plot with thousands of points. Now I would like to fix one point having coordinate (x,y,z). At a particular distance r as a cutoff from (x,y,z), I would like to extract all the points in the plot that fall within the distance (or radius) r. I am not sure of how i can use euclidean distance formula for this. Please help me out.

Wan Ji on 18 Aug 2021
Edited: Wan Ji on 18 Aug 2021
If you have Coor is a n by 3 matrix as the coordinates of n points in 3d space and a fixed point (x,y,z). Then the points within the distance r can be obtained by
p = sqrt((Coor(:,1)-x).^2 + (Coor(:,2)-y).^2 + (Coor(:,3)-z).^2)<r;
Coor_withindistance_r = Coor(p,:);
sai sai on 18 Aug 2021
Thank you so much

Turlough Hughes on 18 Aug 2021
Edited: Turlough Hughes on 18 Aug 2021
The points which are within a radius, r, from the origin can be obtained as follows:
index = sum(X.^2,2) < r^2; % X is an n by 3 array of points
Xthresh = X(index,:);
Note, squaring r is more efficient than taking the square root for ALL of the points in X.
For a starting point other than the origin, e.g. p (1 by 3), points in X within a threshold radius r from the point p can be obtained as follows:
index = sum(X.^2 - p,2) < r^2;
Xthresh = X(index,:);
sai sai on 18 Aug 2021
Thank you

R2021a

### Community Treasure Hunt

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

Start Hunting!