Remove elements of a cell array if length<200

Hi,
I have a cell array with elements of different lengths. I would like to remove elements whose length (number of rows) are less than 200. I have a simplified example here
a=randi(10,199,1);
b=randi(10,205,1);
c=randi(10,80,1);
d=randi(10,300,1);
Y={a; b; c; d};
I would like to remove elements of Y whose lengths are <200, such that the cell array becomes
Y={b;d};
I ran this code but all I got was the first value of matrices b and d, while rows 1 and 3 were [ ]
Y2=cellfun(@(x) x(length(x)>=200), Y, 'un', 0);
Would appreciate if anyone can point out where I went wrong.
Thank you.
Ben

 Respuesta aceptada

OCDER
OCDER el 11 de Oct. de 2017
Y = Y(cellfun(@(x) length(x) >= 200, Y))

2 comentarios

Benedict Low
Benedict Low el 11 de Oct. de 2017
Thank you Donald. Perfect.
OCDER
OCDER el 11 de Oct. de 2017
You're welcome!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 11 de Oct. de 2017

Comentada:

el 11 de Oct. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by