Hello all,
I would like to remove the units (for e.g. seconds) from a string and convert it to double.
For e.g.: 1.00s to 1.00 or 1.25ns to 1.25
Is there any simple way to do that?
Thanks.

1 件のコメント

Stephen23
Stephen23 2015 年 11 月 30 日
編集済み: Stephen23 2015 年 11 月 30 日
You could use my FEX submission sip2num, which converts SI-prefixed strings into numeric, correctly interpreting the SI-prefixes:
>> sip2num('1.00s')
ans =
1
>> sip2num('1.25ns')
ans =
1.2500e-09
It also returns the string parts split by the numeric substrings, and their numbers of significant digits:
>> [num,spl,sgf] = sip2num('1.25ns')
num =
1.2500e-09
spl =
'' 's'
sgf =
3

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

 採用された回答

Thorsten
Thorsten 2015 年 11 月 30 日

0 投票

s = '1.25ns';
v = sscanf(s, '%f')

1 件のコメント

Vamsi
Vamsi 2015 年 11 月 30 日
Thank you very much

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

その他の回答 (1 件)

Ingrid
Ingrid 2015 年 11 月 30 日
編集済み: Ingrid 2015 年 11 月 30 日

0 投票

just use textscan
rawData = textscan(yourValue,'%f%s');
value = rawData{1};
units = rawData{2};

1 件のコメント

Vamsi
Vamsi 2015 年 11 月 30 日
Thanks for the answser

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

カテゴリ

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

質問済み:

2015 年 11 月 30 日

編集済み:

2015 年 11 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by