Sorting columns of cell Array

2 views (last 30 days)
Manuel Arcangeletti
Manuel Arcangeletti on 13 May 2019
Edited: Stephen23 on 13 May 2019
Hello,
I have a Cell Array of Data that is 144x12; it looks like this:
Cell Array_snapshot.png
Now I would like to sort the columns by the value in row 7. At the end, what I would like is a Cell Array with the first column that has in row 7 'p1' and so on...
I will try to be more specific because maybe there's a clever way to obtain what I need...
In my data there are, for example, six columns that have the same value in row 7, but different values in row 6. Given that, I need to do some analysis on all the ones that have the same value in row 7, but taking as reference the one between them that have a certain value in row 6.
Can somebody help me please?
Thank you very much and best regards,
Manuel

Accepted Answer

Stephen23
Stephen23 on 13 May 2019
Edited: Stephen23 on 13 May 2019
Either download my FEX submission natsort:
and then use it like this, where C is your cell array:
[~,idx] = natsort(C(7,:))
D = C(:,idx)
Or use sscanf to get the numeric values and then sort them:
[~,idx] = sort(sscanf([C{7,:}],'p%f'))
D = C(:,idx)

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!