how to sort within the cell array
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have the following code;
sec=({'a';'a';'b';'b';'c';'c';'a';'b'});
fir=({0;0;0;1;2;3;4;0});
all=[fir,sec];
[~,~,X] = unique(all(:,2));
all_data= accumarray(X,1:size(all,1),[],@(r){all(r,:)})
I want to sort all data cell array according to first digit; for example: if we see the second cell array
all_data{2,:}
First row is, 0 1 0, I want this to be 0 0 1, how can I sort these cell arrays after accumaarray function?
0 Kommentare
Akzeptierte Antwort
dpb
am 26 Dez. 2022
>> [~,ix]=sort(cell2mat(tmp(:,1)));
>> tmp=tmp(ix,:)
tmp =
3×2 cell array
{[ 0]} {'b'}
{[ 0]} {'b'}
{[1.00]} {'b'}
>>
to do the one cell...you'll probably have to wrap this in an explicit loop over the size of the input cell array; I couldn't see a convenient way to dereference in anonymous function even with my local utility function sortIndex that returns the order permutation vector instead of the sorted values.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!