erasing all the rows that begin with NaN

1 次查看(过去 30 天)
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

采纳的回答

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

更多回答(2 个)

Thomas
Thomas 2012-7-9
If A is your input cell matrix
out=cellfun(@isnan,A(:,1),'UniformOutput',false)
count=cellfun(@(x)any(x==1),out);
A(~count,:)
  10 个评论
Sabbas
Sabbas 2012-7-9
编辑:Sabbas 2012-7-9
it works for me when I choose the first two columns. But not when I use the whole matrix
Sabbas
Sabbas 2012-7-9
编辑:Sabbas 2012-7-9
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

请先登录,再进行评论。


Jan
Jan 2012-7-9
编辑:Jan 2012-7-9
A(cellfun(@(x) isequalwithequalnans(x, NaN), C), :)

类别

Help CenterFile Exchange 中查找有关 Data Type Identification 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by