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 commentaire

Stephen23
Stephen23 le 13 Sep 2016
Not enough information: what is the cell array? What size are the arrays inside the cell array? Are all cell contents numeric?

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 13 Sep 2016
Modifié(e) : Stephen23 le 13 Sep 2016
Making some guesses here, but this might do what you want:
Y = X(cellfun(@(x)any(isnan(x)),X(:,4)),:)

2 commentaires

phlie
phlie le 13 Sep 2016
Modifié(e) : phlie le 13 Sep 2016
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 :)
If the content of each cell is a scalar, you could even do this:
Y = X(~cellfun(@isnan,X(:,4)),:)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by