Taking unique numbers of a set and order them with their respective number

1 view (last 30 days)
Hello, I have a question i need hel with,
if i have this two vectors that go with each other
angle= [0; 1; 5; 3; 7; 8; 6; 9; 2; 4; 0]
radius= [ 2; 4; 6; 7; 8; 9; 6; 4; 3; 3; 2]
For example angle 0 goes with radius 2, angle 1 goes with radius 4 and so on... I want to take away the repeated angles and order them from smaller to bigger and keep their respective radius with them to get something like this
angle= [ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9]
radius= [ 2; 4; 3; 7; 3; 6; 6; 8; 9; 4]
I really need help with this thank you very much

Accepted Answer

Sean de Wolski
Sean de Wolski on 18 Apr 2014
unique will be your friend:
angle= [0; 1; 5; 3; 7; 8; 6; 9; 2; 4; 0];
radius= [ 2; 4; 6; 7; 8; 9; 6; 4; 3; 3; 2];
% unique angles and index of first occurence
[uv,id,~] = unique(angle);
% extract
ang = uv
rad = radius(id)

More Answers (3)

Walter Roberson
Walter Roberson on 18 Apr 2014
ar = unique([angle, radius], 'rows');
angle = ar(:,1);
radius = ar(:,2);

dpb
dpb on 18 Apr 2014
>> unique([angle radius],'rows')
ans =
0 2
1 4
2 3
3 7
4 3
5 6
6 6
7 8
8 9
9 4
>>

Ruben Alfaro
Ruben Alfaro on 18 Apr 2014
Thanks to all of you for your responses , they were very helpful.
you guys are awesome haha

Community Treasure Hunt

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

Start Hunting!