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

7 次查看(过去 30 天)
sai sai
sai sai2021-8-18
评论: sai sai ,2021-8-18
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.
Thanks in advance.

采纳的回答

Wan Ji
Wan Ji 2021-8-18
编辑:Wan Ji 2021-8-18
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,:);
  4 个评论

请先登录,再进行评论。

更多回答(1 个)

Turlough Hughes
Turlough Hughes 2021-8-18
编辑:Turlough Hughes 2021-8-18
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,:);

Community Treasure Hunt

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

Start Hunting!

Translated by