Clear Filters
Clear Filters

erasing all the rows that begin with NaN

1 view (last 30 days)
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

Accepted Answer

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

More Answers (2)

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

Sign in to comment.


Jan
Jan on 9 Jul 2012
Edited: Jan on 9 Jul 2012
A(cellfun(@(x) isequalwithequalnans(x, NaN), C), :)

Categories

Find more on Data Type Identification in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!