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

6 views (last 30 days)
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);
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]

Accepted Answer

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

More Answers (0)


Find more on Debugging and Analysis in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!