MATLAB: Sort a cell array based on the number of rows in each cell

cell arraysort

Hi, I have an cell array of 6031×1 cell. each cell contain as matrix of different number of rows but with 53 columns.
i want to remove all cells with 1 or 2 rows.
i have tried to use this code to sort the cells and than delete them in a second step:
NrowsB = cellfun('size',mycellarray,1) ;
[~, ri] = sort(NrowsB);
but this does not work. Any ideas how to sort the cells or how to delete the cells directly?

Best Answer

Your question is confused: you ask that you want to "sort a cell array based on the number of rows in each cell", but then later you state that you "want to remove all cells with 1 or 2 rows."
So which do you want to do: sort or delete the cell array?
Here is how you can delete those cells:
NrowsB = cellfun('size',mycellarray,1) ;
mycellarray(NrowsB<3) = []
Here is how you can sort those cells:
[~,idx] = sort(NrowsB);
mycellarray = mycellarray(idx);