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!

 Respuesta aceptada

Torsten
Torsten el 9 de Jun. de 2022
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 comentarios

Or just replace numel(find(... with sum(... or nnz(...
Worked great, cheers!

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 9 de Jun. de 2022
Editada: James Tursa el 9 de Jun. de 2022
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

Categorías

Preguntada:

el 9 de Jun. de 2022

Comentada:

el 9 de Jun. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by