Filter löschen
Filter löschen

erasing all the rows that begin with NaN

1 Ansicht (letzte 30 Tage)
Sabbas
Sabbas am 9 Jul. 2012
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

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 9 Jul. 2012
just
out = A(~cellfun(@(x)all(isnan(x)),A(:,1)),:)

Weitere Antworten (2)

Thomas
Thomas am 9 Jul. 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 Kommentare
Sabbas
Sabbas am 9 Jul. 2012
Bearbeitet: Sabbas am 9 Jul. 2012
it works for me when I choose the first two columns. But not when I use the whole matrix
Sabbas
Sabbas am 9 Jul. 2012
Bearbeitet: Sabbas am 9 Jul. 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

Melden Sie sich an, um zu kommentieren.


Jan
Jan am 9 Jul. 2012
Bearbeitet: Jan am 9 Jul. 2012
A(cellfun(@(x) isequalwithequalnans(x, NaN), C), :)

Kategorien

Mehr zu Data Type Identification finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by