sort a cell array based on the number of rows in each cell

1 visualización (últimos 30 días)
merialu
merialu el 9 de Nov. de 2018
Comentada: merialu el 12 de Nov. de 2018
Hi, I have an cell array of 6031x1 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?

Respuesta aceptada

Stephen23
Stephen23 el 9 de Nov. de 2018
Editada: Stephen23 el 9 de Nov. de 2018
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);
  1 comentario
merialu
merialu el 12 de Nov. de 2018
Yes, sorry for the confusion. Your answer is perfect though, now i know how to sort and delete. thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by