delete rows in a cell array
Afficher commentaires plus anciens
having a cell array containing in 1st column a name of a country and in next column values, how can I delete rows containing 1 or more zeros values?
1 commentaire
Stephen23
le 29 Jan 2019
@Anastasia Anastasiadou: please upload your data in a .mat file by clicking the paperclip button.
Réponse acceptée
Plus de réponses (2)
Omer Yasin Birey
le 29 Jan 2019
Modifié(e) : Omer Yasin Birey
le 29 Jan 2019
Lets say your cell array's variable name is 'a'
a = a(all(cellfun(@(x)x~=0,a),2),:);
5 commentaires
Anastasia Anastasiadou
le 29 Jan 2019
madhan ravi
le 29 Jan 2019
you mean if there is any zero in the row you want to delete it?
Anastasia Anastasiadou
le 29 Jan 2019
Omer Yasin Birey
le 29 Jan 2019
That should work
remZeros = a(all(cellfun(@(x)x~=0,a),2),:);
remZeros(2:end+1,:) = remZeros(1:end,:);
remZeros(1,:) = a(1,:);
Anastasia Anastasiadou
le 29 Jan 2019
KSSV
le 29 Jan 2019
Let A be your matrix with size (m,n)
idx = A==0 ;
A(sum(A,2)~=n,:) = [] ;
2 commentaires
madhan ravi
le 29 Jan 2019
? OP has mentioned it’s a cell array not a matrix.
Anastasia Anastasiadou
le 29 Jan 2019
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
