Azzera filtri
Azzera filtri

erasing all the rows that begin with NaN

1 visualizzazione (ultimi 30 giorni)
I have a cell matric.
The first two columns of this matrix are
[1x28 char] [ NaN]
[ NaN] [ NaN]
'MART' 'TOTATRIA'
'PREGORY' 'TOSTE'
[ NaN] [ NaN]
My goal is to erase these rows which have as a first element NaN
In the above example I want to erase row2 and the last one
thanks

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 9 Lug 2012
just
out = A(~cellfun(@(x)all(isnan(x)),A(:,1)),:)

Più risposte (2)

Thomas
Thomas il 9 Lug 2012
If A is your input cell matrix
out=cellfun(@isnan,A(:,1),'UniformOutput',false)
count=cellfun(@(x)any(x==1),out);
A(~count,:)
  10 Commenti
Sabbas
Sabbas il 9 Lug 2012
Modificato: Sabbas il 9 Lug 2012
it works for me when I choose the first two columns. But not when I use the whole matrix
Sabbas
Sabbas il 9 Lug 2012
Modificato: Sabbas il 9 Lug 2012
I used
count=cellfun(@(x)any(x==1),out);
A(count==1,:)=[]
and it seems to work
could you plese verify that the code is equivalent to the one you provided?
thanks

Accedi per commentare.


Jan
Jan il 9 Lug 2012
Modificato: Jan il 9 Lug 2012
A(cellfun(@(x) isequalwithequalnans(x, NaN), C), :)

Categorie

Scopri di più su Data Type Identification in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by