在matlab中将特定格式的字符串转换为数字

时间:2015-07-02 17:28:31

标签: matlab

如何将格式化字符串'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;

2 个答案:

答案 0 :(得分:1)

你的字符串几乎有Matlab的科学记数法;只缺少e。因此:使用regexprepe+符号之前插入-前面有数字(不在可能的前导符号之前),然后拨打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)

str2num('str')

仅在格式是指定的here

格式之一时才有效

我会浏览字符串并删除+符号,然后从那里转换。

我会使用regexprep函数。