Detecting NaN in cell array

I have a 54x8 cell array that contains only strings. Most of these strings represent numbers and I would like to detect which cells are NaN.
One possibility would simply be to replace all NaN with ' ' or to check whether each d{i,j} == NaN.
Thanks

 Accepted Answer

cellfun(@(C) any(isnan(C(:)), YourCell)
However in your situation you could probably go with
cellfun(@isnumeric, C)
Oh wait, when you say NaN, do you mean the string 'NaN' ? If so then
cellfun(@(C) strcmp(C, 'NaN'), C)

6 Comments

Yes, I meant the string 'NaN'. However, I am not sure what that statement is doing. Is it returning anything?
Ah right, should be cellfun(@(C) strcmp(C,'NaN'), d) for testing cell array d.
yes, but that gives a matrix with 0s and 1s at corresponding indexes. Is there a simpler way to check a given d{i,j}? E.g.
for i=1:54
for j=1:8
if (d{i,j} == 'NaN')
%statement
end
end
end
Not work for me. (2016b)
Answer: Matrix dimensions must agree.
G H are you comparing numeric nan or string 'NaN'
Hello,
@WalterRoberson:
Is there a way to use this
cellfun(@(ds) strcmp(ds, 'NaN'), ds))
when the cell elements are not aligned but below each other?
Thank you!

Sign in to comment.

More Answers (0)

Categories

Asked:

SG
on 26 May 2015

Edited:

on 18 Dec 2018

Community Treasure Hunt

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

Start Hunting!