Sorting coordinates on radial distance from origin

Very new to MatLab and struggling with what I think is probably very easy.
I have a set of x,y coordinates over time from particle tracking analysis. I would like to set the origin to a specific x,y coordinate and then calculate the number of coordinates that are some given radial distance from this origin.
Any help greatly appreciated!

 Accepted Answer

If (x0,y0) is the reference point and your coordinates are saved in a matrix XY of size (2xn), then just use
R = 2.0; %e.g.
n = numel(find((XY(1,:)-x0).^2+(XY(2,:)-y0).^2 <= R^2))
n is the number of points in the XY matrix that lie within a radial distance of R from (x0,y0).

2 Comments

Or just replace numel(find(... with sum(... or nnz(...

Sign in to comment.

More Answers (1)

Here's one way to do that:
[~,distance] = cart2pol(x-x0,y-y0); %distances from (x0,y0)
count = nnz(dist_Lower<=distance & distance<=dist_Upper) % count the number within a certain distance range

Community Treasure Hunt

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

Start Hunting!