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

 Risposta accettata

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 Commenti

SG
SG il 26 Mag 2015
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
G H
G H il 8 Lug 2017
Not work for me. (2016b)
Answer: Matrix dimensions must agree.
G H are you comparing numeric nan or string 'NaN'
beginner94
beginner94 il 18 Dic 2018
Modificato: beginner94 il 18 Dic 2018
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!

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by