MATLAB: Sorting cell array ascending order and changing the values within the cell to positive

cell arraysorting positive

I have got the following cell array. I want to put the cell array in ascending order in such a way that the [smallest numberx24 double] is listed first. I also want all the values inside each cell array to be listed as positive values. So how do I incorporate an abs function?
[ 52416×24 double] [ 51888×24 double] [ 51384×24 double] [ 50880×24 double] [ 50400×24 double] [ 49920×24 double] [ 49440×24 double] [ 48984×24 double] [ 48528×24 double] [ 48072×24 double] [ 47640×24 double] [ 47208×24 double] [ 46800×24 double] [ 46392×24 double] [ 45984×24 double] [ 45576×24 double] [ 45192×24 double] [ 44808×24 double] [ 44424×24 double] [ 44040×24 double] [ 43680×24 double] [ 43320×24 double] [ 42960×24 double] [ 42600×24 double] [ 42264×24 double] [ 41928×24 double] [ 41592×24 double] [ 41280×24 double] [ 40944×24 double] [ 40632×24 double] [ 40320×24 double] [174696×24 double] [169056×24 double] [163776×24 double] [158808×24 double] [154128×24 double] [149736×24 double] [145560×24 double] [141648×24 double] [137904×24 double] [134376×24 double] [131016×24 double] [127824×24 double] [124776×24 double] [121872×24 double] [119112×24 double] [116472×24 double] [113928×24 double] [111504×24 double] [109176×24 double] [106944×24 double] [104808×24 double] [102768×24 double] [100776×24 double] [ 98880×24 double] [ 97056×24 double] [ 95280×24 double] [ 93576×24 double] [ 91944×24 double] [ 90360×24 double] [ 88824×24 double] [ 87336×24 double] [ 85920×24 double] [ 84528×24 double] [ 83184×24 double] [ 81888×24 double] [ 80616×24 double] [ 79416×24 double] [ 78216×24 double] [ 77064×24 double] [ 75960×24 double] [ 74880×24 double] [ 73824×24 double] [ 72792×24 double] [ 71784×24 double] [ 70824×24 double] [ 69888×24 double] [ 68952×24 double] [ 68064×24 double] [ 67200×24 double] [ 66336×24 double] [ 65520×24 double] [ 64704×24 double] [ 63912×24 double] [ 63144×24 double] [ 62400×24 double] [ 61656×24 double] [ 60936×24 double] [ 60240×24 double] [ 59568×24 double] [ 58896×24 double] [ 58224×24 double] [ 57600×24 double] [ 56976×24 double] [ 56352×24 double] [ 55752×24 double] [ 55176×24 double] [ 54600×24 double] [ 54024×24 double] [ 53472×24 double] [ 52944×24 double] [174696×24 double] [174696×24 double]

Best Answer

Try this:
>> A = {rand(2,3)-0.5,rand(1,3)-0.5,rand(3,3)-0.5};
>> [~,X] = sort(cellfun('size',A,1));
>> B = cellfun(@abs,A(X),'UniformOutput',false);
The cell array A represents your cell array, it contains three numeric arrays, with size Nx3 for N=[1,2,3]. The first cellfun measures the size of the first dimension of each numeric array, these sizes are then sorted into order, returning the sort index. Then the second cellfun sorts the cell array according to this index, and takes the absolute value of the numeric arrays.