Filter löschen
Filter löschen

Cartesian to polar sorting

2 Ansichten (letzte 30 Tage)
Suhas Deshpande
Suhas Deshpande am 1 Jul. 2011
I converted a set of coordinates from Cartesian to polar form
[rho,theta] = cart2pol(x,y);
Next I sorted the polar coordinates
theta_ascend = sort(theta,'ascend');
As in the case of any polar system I will have multiple values of rho for one value of theta. For every value of theta I want to select the maximum value of rho and reject the other values.
for e.g If my values are
theta = 3.14 3.14 3.14 3.13 3.13 3.12 3.12 3.12 . . . rho = 12 15 6 3 5 8 2 11 . . .
I want my output to be theta = 3.14 3.13 3.12 . . . rho = 15 5 11 . . .
Please suggest ?

Akzeptierte Antwort

Matt Fig
Matt Fig am 1 Jul. 2011
As an example:
% First some data to work with:
thet = round(rand(1,10)*3)
r = round(rand(1,10)*30)
% Now match the largest r per unique thet:
M = sortrows([thet.',r.']);
M = M([logical(diff(M(:,1)));true],:)
  1 Kommentar
Suhas Deshpande
Suhas Deshpande am 1 Jul. 2011
For some reason I am not able to convert the sorted polar coordinates to Cartesian
[x,y] = pol2cart(M(:,1),M(:,2))
or
[x,y] = pol2cart(theta,rho)
gives an error
Error: Unexpected MATLAB operator.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by