how to execute str2num or str2double in matlab?
6 ビュー (過去 30 日間)
古いコメントを表示
I am having trouble using commands str2num.
I have a character
t='2'
'u1'
'u2 '
I used the command p=str2double(char(t)). Right now if I use str2num, a null array appears in the output whereas using str2double gives NaN in output. While searching about these I learned that these character values are not converted to numbers.
I wanted p to store values [2, 1, 2]. How can I do that? Thanks for reading...
4 件のコメント
per isakson
2018 年 5 月 9 日
編集済み: per isakson
2018 年 5 月 9 日
Hint:
t = { '2' 'u1' 'u2 '};
c = regexp( t, '[\d ]+', 'match' );
p = cellfun( @str2double, c )
outputs
p =
2 1 2
採用された回答
Stephen23
2018 年 5 月 9 日
編集済み: Stephen23
2018 年 5 月 9 日
Simple, and possibly the most efficient way:
>> t = {'2','u1','u2 '};
>> sscanf([t{:}],'%du')
ans =
2
1
2
2 件のコメント
Stephen23
2018 年 5 月 9 日
編集済み: Stephen23
2018 年 5 月 9 日
@MEENAL SINGHAL: Perhaps you are asking about how to write a maths parser, which in general is not a trivial task. What operators do you expect to have? For simple multiplication:
>> t = {'u0*2','u1*2','u2*2'};
>> v = sscanf([t{:}],'u%d*%d');
>> v(1:2:end).*v(2:2:end)
ans =
0
2
4
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!