I need to take characters out of a string using isnan and str2double.

1 visualización (últimos 30 días)
Basically I need to take out the numeric values out of a string using these functions. I keep trying but some of the characters still come out as numbers.
This is an example
a='281-890-8905';
o=length(a);
for k=1:o
x=isnan(a(k));
if x==0
y=str2double(a(k));
end
end

Respuesta aceptada

Thorsten
Thorsten el 26 de Oct. de 2016
cellfun(@(x) sscanf(x, '%f'), regexp(a, '(\d+)', 'match'))
  3 comentarios
Rafael Perales
Rafael Perales el 26 de Oct. de 2016
This worked I just took out the plus sign to make it a single vector.Thank you
Thorsten
Thorsten el 26 de Oct. de 2016
Thank you Guillaume for pointing this out.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 26 de Oct. de 2016
Editada: Jan el 26 de Oct. de 2016
Faster and simpler:
a = '281-890-8905';
s = a(a >= '0' & a <= '9') - '0';
Or:
s = a(isstrprop(a, 'digit')) - '0';

Categorías

Más información sobre Characters and Strings 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