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

1 次查看(过去 30 天)
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

采纳的回答

Sean de Wolski
Sean de Wolski 2014-4-18
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)

更多回答(3 个)

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

dpb
dpb 2014-4-18
>> 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 2014-4-18
Thanks to all of you for your responses , they were very helpful.
you guys are awesome haha

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by