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

2 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by