如何从matlab中的字符串中获取数字

tyt*_*amu 3 string matlab

我想知道如何从matlab中的字符串中获取某些数字.例如,我有一个字符串:

'ABCD_01 36 _00 3 .txt',(01和36之间有间距)

我需要的是获得数字36和3.如何在matlab中完成?我试过从以前的帖子中找到答案,但找不到符合此目的的答案.谢谢您的帮助.

Amr*_*mro 9

常用表达:

>> str = 'ABCD_01 36_00 3 .txt';
>> t = str2double( regexp(str,'.* (\d+)_.* (\d+)','tokens','once') )

t =
    36     3
Run Code Online (Sandbox Code Playgroud)


b3.*_*b3. 6

如果文件名始终以四个字符开头,则可以执行以下操作:

>> filename = 'ABCD_01 36_00 3 .txt';
>> sscanf(filename, '%*4c_%*u %u_%*u %u.txt')

ans =

    36
     3