i want to delete cells that contain 0's

2 vues (au cours des 30 derniers jours)
Ioannis Vourvachakis
Ioannis Vourvachakis le 24 Nov 2021
In a cell array, there are rows of cells that contain 0's. I want to delete these rows.
Thank you.

Réponse acceptée

Kevin Holly
Kevin Holly le 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 commentaires
Kevin Holly
Kevin Holly le 24 Nov 2021
cellarray = {34 , 23, "ok", 123, 0 ,423, 4312;34 , 23, 4, 123, 5 ,"Words", 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]} {["ok"]} {[ 123]} {[0]} {[ 423]} {[4312]} {[34]} {[23]} {[ 4]} {[ 123]} {[5]} {["Words"]} {[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) isnumeric(x) && x==0 ,cellarray,'un',0)
out = 5×7 cell array
{[0]} {[0]} {[0]} {[0]} {[1]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[1]} {[1]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]} {[0]}
[row, column] = find(cell2mat(out))
row = 3×1
3 3 1
column = 3×1
2 3 5
cellarray(row,:)=[]
cellarray = 3×7 cell array
{[34]} {[23]} {[4]} {[ 123]} {[5]} {["Words"]} {[4312]} {[34]} {[73]} {[5]} {[ 13]} {[7]} {["23" ]} {[ 43]} {[34]} {[22]} {[3]} {["125"]} {[5]} {[ 423]} {[4312]}
Ioannis Vourvachakis
Ioannis Vourvachakis le 24 Nov 2021

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Types 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