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

时间:2011-08-12 19:47:37

标签: string matlab

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

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

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

2 个答案:

答案 0 :(得分:9)

正则表达式:

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

t =
    36     3

答案 1 :(得分:6)

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

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

ans =

    36
     3