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

2 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Thorsten
Thorsten il 26 Ott 2016
cellfun(@(x) sscanf(x, '%f'), regexp(a, '(\d+)', 'match'))
  3 Commenti
Rafael Perales
Rafael Perales il 26 Ott 2016
This worked I just took out the plus sign to make it a single vector.Thank you

Accedi per commentare.

Più risposte (1)

Jan
Jan il 26 Ott 2016
Modificato: Jan il 26 Ott 2016
Faster and simpler:
a = '281-890-8905';
s = a(a >= '0' & a <= '9') - '0';
Or:
s = a(isstrprop(a, 'digit')) - '0';

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by