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

2 ビュー (過去 30 日間)
Rafael Perales
Rafael Perales 2016 年 10 月 26 日
コメント済み: Thorsten 2016 年 10 月 26 日
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

採用された回答

Thorsten
Thorsten 2016 年 10 月 26 日
cellfun(@(x) sscanf(x, '%f'), regexp(a, '(\d+)', 'match'))
  3 件のコメント
Rafael Perales
Rafael Perales 2016 年 10 月 26 日
This worked I just took out the plus sign to make it a single vector.Thank you
Thorsten
Thorsten 2016 年 10 月 26 日
Thank you Guillaume for pointing this out.

サインインしてコメントする。

その他の回答 (1 件)

Jan
Jan 2016 年 10 月 26 日
編集済み: Jan 2016 年 10 月 26 日
Faster and simpler:
a = '281-890-8905';
s = a(a >= '0' & a <= '9') - '0';
Or:
s = a(isstrprop(a, 'digit')) - '0';

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by