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!

 採用された回答

Torsten
Torsten 2022 年 6 月 9 日

0 投票

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 件のコメント

James Tursa
James Tursa 2022 年 6 月 9 日
Or just replace numel(find(... with sum(... or nnz(...
George Vaisey
George Vaisey 2022 年 6 月 9 日
Worked great, cheers!

サインインしてコメントする。

その他の回答 (1 件)

Matt J
Matt J 2022 年 6 月 9 日
編集済み: James Tursa 2022 年 6 月 9 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by