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

 Respuesta aceptada

Walter Roberson
Walter Roberson el 26 de Mayo de 2015

2 votos

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 comentarios

SG
SG el 26 de Mayo de 2015
Yes, I meant the string 'NaN'. However, I am not sure what that statement is doing. Is it returning anything?
Walter Roberson
Walter Roberson el 26 de Mayo de 2015
Ah right, should be cellfun(@(C) strcmp(C,'NaN'), d) for testing cell array d.
SG
SG el 26 de Mayo de 2015
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 el 8 de Jul. de 2017
Not work for me. (2016b)
Answer: Matrix dimensions must agree.
Walter Roberson
Walter Roberson el 8 de Jul. de 2017
G H are you comparing numeric nan or string 'NaN'
beginner94
beginner94 el 18 de Dic. de 2018
Editada: beginner94 el 18 de Dic. de 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!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Preguntada:

SG
el 26 de Mayo de 2015

Editada:

el 18 de Dic. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by