如何将格式化字符串'1234 + 06'转换为matlab中的数字?我理解如何将字符串转换为数字,所以我应该用加号来描述?如果有人在将来向我发送不使用加号的文件怎么办?我要试试:
pos = fscanf(fid,'%s',1);
C = strsplit(pos,'+')
first_num=C(1);
second_num=C(2);
pos=first_num*10^second_num;
答案 0 :(得分:1)
你的字符串几乎有Matlab的科学记数法;只缺少e
。因此:使用regexprep
在e
或+
符号之前插入-
前面有数字(不在可能的前导符号之前),然后拨打str2num
:
>> str = '1234+06';
>> str2num(regexprep(str, {'(?<=\d)+', '(?<=\d)-'}, {'e+', 'e-'}))
ans =
1.2340e+09
>> str = '-1.2-3';
>> str2num(regexprep(str, {'(?<=\d)+', '(?<=\d)-'}, {'e+', 'e-'}))
ans =
-0.0012
答案 1 :(得分:0)