i want to delete cells that contain 0's

1 view (last 30 days)
In a cell array, there are rows of cells that contain 0's. I want to delete these rows.
Thank you.

Accepted Answer

Kevin Holly
Kevin Holly on 24 Nov 2021
Assuming the values in cell array are numeric:
cellarray = {34 , 23, 4, 123, 0 ,423, 4312;34 , 23, 4, 123, 5 ,423, 4312;34 , 0, 0, 123, 5 ,423, 4312;34 , 73, 5, 13, 7 ,23, 43;34 , 22, 3, 125, 5 ,423, 4312}
cellarray = 5×7 cell array
{[34]} {[23]} {[4]} {[123]} {[0]} {[423]} {[4312]} {[34]} {[23]} {[4]} {[123]} {[5]} {[423]} {[4312]} {[34]} {[ 0]} {[0]} {[123]} {[5]} {[423]} {[4312]} {[34]} {[73]} {[5]} {[ 13]} {[7]} {[ 23]} {[ 43]} {[34]} {[22]} {[3]} {[125]} {[5]} {[423]} {[4312]}
out = cellfun(@(x) find(x == 0),cellarray,'un',0);
idx = cellfun('isempty',out);
[row, column] = find(~idx);
cellarray(row,:)=[]
cellarray = 3×7 cell array
{[34]} {[23]} {[4]} {[123]} {[5]} {[423]} {[4312]} {[34]} {[73]} {[5]} {[ 13]} {[7]} {[ 23]} {[ 43]} {[34]} {[22]} {[3]} {[125]} {[5]} {[423]} {[4312]}
  3 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!