MATLAB中字符串的数字提取

MATLAB中字符串的数字提取,matlab,scanf,Matlab,Scanf,我正在使用sscanf从字符串中提取数字。字符串的形式通常为: '44 ppm' '10 gallons' '23.4 inches' '<1 ppm' 但就专业而言,它们的形式如下: '44 ppm' '10 gallons' '23.4 inches' '<1 ppm' 我得到的输出是 1 但是如果我在一个前面加上小于号: x = sscanf('<1 ppm','%f') 我如何编写这段代码,使其实际生成一个数字?我还不确定它应该打印什么数字……但我们现在就说

我正在使用sscanf从字符串中提取数字。字符串的形式通常为:

'44 ppm'
'10 gallons'
'23.4 inches'
'<1 ppm'
但就专业而言,它们的形式如下:

'44 ppm'
'10 gallons'
'23.4 inches'
'<1 ppm'
我得到的输出是

1
但是如果我在一个前面加上小于号:

x = sscanf('<1 ppm','%f')
我如何编写这段代码,使其实际生成一个数字?我还不确定它应该打印什么数字……但我们现在就说它应该打印1

您可以使用:

s=”您可以使用:

s=
s= '<1 ppm';
x=regexp(s, '.*?(\d+(\.\d+)*)', 'tokens' )

x{1}
>> s= {'44 ppm', '10 gallons', '23.4 inches', '<1 ppm' } ;
>> x = regexp(s, '.*?(\d+(\.\d+)*)', 'tokens' );
>> cellfun( @(x) disp(x{1}), x )  % Demo for all
    '44'

    '10'

    '23.4'

    '1'