Hi all, I would like to know how to identify and extract a number or digit from a string or text, so if I have Ans = ['2.66 meters in the front of the mirror']; I would only like to identify and extract the double, this should be a general thing and not only specific to the 2.66. Please help

 採用された回答

madhan ravi
madhan ravi 2020 年 10 月 11 日

0 投票

Wanted = str2double(regexp(Ans, '(+|-)?(\d+)?\.?\d*', 'match'))

1 件のコメント

Omphemetse Moeng
Omphemetse Moeng 2020 年 10 月 11 日
Thank you for this, it works.

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

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 10 月 11 日
編集済み: Ameer Hamza 2020 年 10 月 11 日

0 投票

Try sscanf()
str = '2.66 meters in the front of the mirror';
nums = sscanf(str, '%f');
Result
>> nums
nums =
2.6600

1 件のコメント

Omphemetse Moeng
Omphemetse Moeng 2020 年 10 月 11 日
Thank you, this only works if the number is placed first, so generally should its position in the string change it does not work anymore, I then get 0x0 double. Is there a more general way to this?

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

カテゴリ

ヘルプ センター および File Exchange で Characters and Strings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by