find element in cell

1 vue (au cours des 30 derniers jours)
skysky2000
skysky2000 le 12 Juil 2017
Commenté : dbmn le 13 Juil 2017
Dear all, I've problem with the cell,
a= {[67 8 33] [1 2 3 5] [2 88 5] [3 66 7 90] [3] [66 78 12 1 44 6 77 3]},
how to find each cell have number 3. answer expect it is:
b= {[1 2 3 5] [3 66 7 90] [3] [66 78 12 1 44 6 77 3]}
thanks all

Réponses (2)

dbmn
dbmn le 12 Juil 2017
An alternative to KSSVs solution would be this one liner
b = a(cellfun(@(x) sum(x==3)>0, a));
  3 commentaires
dbmn
dbmn le 13 Juil 2017
Nice, using "any" there is a really neat idea.

Connectez-vous pour commenter.


KSSV
KSSV le 12 Juil 2017
a= {[67 8 33] [1 2 3 5] [2 88 5] [3 66 7 90] [3] [66 78 12 1 44 6 77 3]} ;
b= {[1 2 3 5] [3 66 7 90] [3] [66 78 12 1 44 6 77 3]} ;
iwant = cell([],1) ;
count = 0 ;
for i = 1:length(a)
if any(a{i}==3)
count = count+1 ;
iwant{count} = a{i} ;
end
end
iwant

Catégories

En savoir plus sur Loops and Conditional Statements 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