Sort cell array columns by two dimensions
5 views (last 30 days)
Show older comments
I want to sort the columns of a cell array along the first two rows.
The array has this form (the top row is already sorted):
array = {'A' 'A' 'B' 'B' 'B' 'C' 'C'; ...
1 0.1 1 0.1 0.5 1 0.1; ...
2 3 2 4 5 2 3}
And I would like the output to be in this form:
array = {'A' 'A' 'B' 'B' 'B' 'C' 'C'; ...
0.1 1 0.1 0.5 1 0.1 1; ...
3 2 4 5 2 3 2}
Thanks in advance!
0 Comments
Accepted Answer
Azzi Abdelmalek
on 10 Jan 2015
Edited: Azzi Abdelmalek
on 10 Jan 2015
array = {'A' 'A' 'B' 'B' 'B' 'C' 'C'
1 0.1 1 0.1 0.5 1 0.1
2 3 2 4 5 2 3}
array=sortrows(array',[1,2])'
0 Comments
More Answers (1)
Star Strider
on 10 Jan 2015
This seems to work:
array = {'A' 'A' 'B' 'B' 'B' 'C' 'C'; ...
1 0.1 1 0.1 0.5 1 0.1; ...
2 3 2 4 5 2 3};
B = sortrows(array', [1 2])'
and produces:
B =
'A' 'A' 'B' 'B' 'B' 'C' 'C'
[0.1] [1] [0.1] [0.5] [1] [0.1] [1]
[ 3] [2] [ 4] [ 5] [2] [ 3] [2]
0 Comments
See Also
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!