MATLAB下提取字符串中的全部数值

字符串里含有多组数据混合情况下提取数据,这个功能看似简单,实则有坑。

  1. 先将字符串里的数字字符串提取出来,利用regexp函数
>> str = '我是谁dbsf1234hdhu567.9hfhasbhfdhh2124ddds1哈哈';
num_str = regexp(str,'\d*\.?\d*','match');
num_str
>>回车输出:
num_str =
  1×4 cell 数组
    {'1234'}    {'567.9'}    {'2124'}    {'1'}
>> 

2. 再利用str2double将字符串转为数字

>> num = str2double(num_str);