Effacer les filtres
Effacer les filtres

Remove elements of a cell array if length<200

2 vues (au cours des 30 derniers jours)
Benedict Low
Benedict Low le 11 Oct 2017
Commenté : OCDER le 11 Oct 2017
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

Réponse acceptée

OCDER
OCDER le 11 Oct 2017
Y = Y(cellfun(@(x) length(x) >= 200, Y))
  2 commentaires
Benedict Low
Benedict Low le 11 Oct 2017
Thank you Donald. Perfect.
OCDER
OCDER le 11 Oct 2017
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by