I have a cell array that needs to be sorted both ascending and descending.
It is:
Groups = {[-83;-84] [-65] [-47;-50] [-30;-33] [-22;-26] [-15;-16] [-6; -7]}
Groups = 1×7 cell array
{2×1 double} {[-65]} {2×1 double} {2×1 double} {2×1 double} {2×1 double} {2×1 double}

 Accepted Answer

Voss
Voss on 23 Mar 2022
Edited: Voss on 23 Mar 2022
"What I mean is how can I organize G in this way?"
G = {[-6; -7] [-16;-15] [-26;-22] [-33;-30] [-50;-47] [-65] [-83;-84]};
Maybe like this:
G = {[-83;-84] [-65] [-50;-47] [-33;-30] [-26;-22] [-16;-15] [-6; -7]};
[~,idx] = sort(cellfun(@(x)max(abs(x)),G));
G = G(idx);
format compact
celldisp(G);
G{1} = -6 -7 G{2} = -16 -15 G{3} = -26 -22 G{4} = -33 -30 G{5} = -50 -47 G{6} = -65 G{7} = -83 -84

More Answers (2)

What are you sorting on? The average value of each array? If so, try this:
% Make an unsorted G
G = {[-6; -7] [-65] [-15;-16] [-30;-33] [-22;-26] [-47;-50] [-83;-84]}
% Find means
for k = 1 : numel(G)
theMeans(k) = mean(G{k}, 'all');
end
% Sort based on means:
[sortedMeans, sortorder] = sort(theMeans, 'descend')
% Now sort G
GSorted = G(sortorder)
celldisp(GSorted)

2 Comments

this works too, thanks!
OK, but you have said it works for multiple answers even though they sort it differently. I sorted by the average value and @_ sorted it by the max value. So which way is it? (In this particular case they're the same though.)

Sign in to comment.

Ive J
Ive J on 22 Mar 2022
If by sort, you mean sort within each element of cell array:
G = {[-83;-84] [-65] [-50;-47] [-33;-30] [-26;-22] [-16;-15] [-6; -7]};
Ga = cellfun(@(x)sort(x, 'ascend'), G, 'uni', false);
Gd = cellfun(@(x)sort(x, 'descend'), G, 'uni', false);
Or if you mean overall, vertcat the cell array and then sort.

1 Comment

Heirleking
Heirleking on 23 Mar 2022
Edited: Heirleking on 23 Mar 2022
Hello,
I tried your answer and both Ga and Gd end up being the same.
What I mean is how can I organize G in this way?
G = {[-6; -7] [-15;-16] [-22;-26] [-30;-33] [-47;-50] [-65] [-83;-84]};

Sign in to comment.

Categories

Products

Release

R2022a

Asked:

on 22 Mar 2022

Commented:

on 23 Mar 2022

Community Treasure Hunt

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

Start Hunting!