isnan cellfun and dropping rows

7 次查看(过去 30 天)
Hi, in my cell array X, I would like to drop all rows where the value of the 4th column is NaN (the new cell array is Y).
I am trying this:
Y = X(~any(cellfun(@isnan,X(:,4),'UniformOutput',false),2),:)
It returns the following error: Undefined function 'any' for input arguments of type 'cell'.
How do I have to change the code?
  1 个评论
Stephen23
Stephen23 2016-9-13
Not enough information: what is the cell array? What size are the arrays inside the cell array? Are all cell contents numeric?

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2016-9-13
编辑:Stephen23 2016-9-13
Making some guesses here, but this might do what you want:
Y = X(cellfun(@(x)any(isnan(x)),X(:,4)),:)
  2 个评论
phlie
phlie 2016-9-13
编辑:phlie 2016-9-13
Thank you for answering my incomplete question anyway. Your code works, but it does the exact opposite of what I wish to do. With a tilde before isnan, it works as I was hoping :)
Stephen23
Stephen23 2016-9-13
If the content of each cell is a scalar, you could even do this:
Y = X(~cellfun(@isnan,X(:,4)),:)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by