remove cell array content with condition: length of element in cell smaller than specific value

5 vues (au cours des 30 derniers jours)
Let's say:
A : 3x1 cell class
A={cell_1 ; cell_2 ; cell_3 }
A={[1x2 double];[1x5 double];[1x3 double]}
cell_1 [999,222]
cell_2 [444,123,2000,789,1000]
cell_3 [5000,9000,4000]
If I wanna count how many element in each cell:
out1= cellfun('length',A);
out1=[2;5;3]
Now, I wanna delete the row of cell A, If the number element in that row <3. How can I do that? The result is:
result : 2x1 cell class
result={cell_2 ; cell_3 }
result={[1x5 double];[1x3 double]}
cell_2 [444,123,2000,789,1000]
cell_3 [5000,9000,4000]

Réponse acceptée

Stephen23
Stephen23 le 4 Mar 2018
Modifié(e) : Stephen23 le 4 Mar 2018
A(cellfun('length',A)<3) = []
or if you want to leave the original variable unchanged:
B = A(cellfun('length',A)>=3);

Plus de réponses (0)

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by