replacing NaN with zeros in a cell column of strings

1 visualización (últimos 30 días)
antonet
antonet el 24 de Abr. de 2013
Editada: Shane Hagen el 22 de Mzo. de 2015
Dear all,
I have this column
A={[NaN]
[NaN]
[NaN]
[NaN]
[NaN]
'ka'
[NaN]
[NaN]
'jdfksjkg'
'ldsiu'
[NaN]
[NaN]
'jdfkkg'
'jdfkkg'
};
and I want to replace the NaN with zeros that is ,
A={[0]
[0]
[0]
[0]
[0]
'ka'
[0]
[0]
'jdfksjkg'
'ldsiu'
[0]
[0]
'jdfkkg'
'jdfkkg'
};
Is there a way of doing that in matlab?
Thanks in advance

Respuesta aceptada

Jan
Jan el 25 de Abr. de 2013
Are the NaNs the only non-CHAR elements? Then:
A(~cellfun('isclass', A, 'char')) = {0};
  1 comentario
antonet
antonet el 25 de Abr. de 2013
thanks Jan. I have columns of dimension 200000 by 1. so I want to avoid using loops

Iniciar sesión para comentar.

Más respuestas (2)

Wayne King
Wayne King el 24 de Abr. de 2013
One way is just with a for loop:
for ii = 1:length(A)
if isnan(A{ii})
A{ii} = 0;
end
end
  4 comentarios
Jan
Jan el 25 de Abr. de 2013
This is the most simplest method. +1
Shane Hagen
Shane Hagen el 22 de Mzo. de 2015
Editada: Shane Hagen el 22 de Mzo. de 2015
isnan doesnt work for cells...can anyone help?
If i separate out the individual cell with NaN it works but not in the loop
ix=cellfun(@isempty,spiketimes);
spiketimes(ix)={0} ; %which I wish would just put 0's
for ii = 1:length(spiketimes)
if isnan(spiketimes{ii})
spiketimes{ii} = 0;
end end
results = spiketimes{j};
%n = length(results(j,:));
plot([results{:} ; results{:}], [ones(1,n)*j-1;ones(1,n)*j],'k-'); end; end;
Undefined function 'isnan' for input arguments of type 'cell'.
this is at the end of my code..would appreciate any help

Iniciar sesión para comentar.


Cedric
Cedric el 25 de Abr. de 2013
Editada: Cedric el 25 de Abr. de 2013
You can go for something like:
A(cellfun(@(x)all(x~=x), A)) = {0} ;
but it is just "cosmetic" (in some sense) and the loop proposed by Wayne (with a little update so it manages well non-scalar content) is likely to be more efficient.
  2 comentarios
antonet
antonet el 25 de Abr. de 2013
Any other sugestion?
thanks
Jan
Jan el 25 de Abr. de 2013
@antonet: You got two working solutions. Asking for more solutions without explaining, why you are not satisfied already, is not efficient. Please do not let us guess, what you are exactly looking for, because this wastes your and our time.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by