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

2 views (last 30 days)
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

Accepted Answer

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

Sign in to comment.

More Answers (1)

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

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!