delete rows in a cell array
Ältere Kommentare anzeigen
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 Kommentar
Stephen23
am 29 Jan. 2019
@Anastasia Anastasiadou: please upload your data in a .mat file by clicking the paperclip button.
Akzeptierte Antwort
Weitere Antworten (2)
Omer Yasin Birey
am 29 Jan. 2019
Bearbeitet: Omer Yasin Birey
am 29 Jan. 2019
Lets say your cell array's variable name is 'a'
a = a(all(cellfun(@(x)x~=0,a),2),:);
5 Kommentare
Anastasia Anastasiadou
am 29 Jan. 2019
madhan ravi
am 29 Jan. 2019
you mean if there is any zero in the row you want to delete it?
Anastasia Anastasiadou
am 29 Jan. 2019
Omer Yasin Birey
am 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
am 29 Jan. 2019
KSSV
am 29 Jan. 2019
Let A be your matrix with size (m,n)
idx = A==0 ;
A(sum(A,2)~=n,:) = [] ;
2 Kommentare
madhan ravi
am 29 Jan. 2019
? OP has mentioned it’s a cell array not a matrix.
Anastasia Anastasiadou
am 29 Jan. 2019
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
