String matlab中如何从字符串中求出数字
我想知道如何从matlab中的字符串中获取某些数字。例如,我有一个字符串: 'ABCD_0136_003.txt'(01和36之间有空格)String matlab中如何从字符串中求出数字,string,matlab,String,Matlab,我想知道如何从matlab中的字符串中获取某些数字。例如,我有一个字符串: 'ABCD_0136_003.txt'(01和36之间有空格) 我需要的是36号和3号。如何在matlab中实现它?我试着从以前的帖子中找到答案,但找不到一个适合这个目的的答案。谢谢您的帮助。如果文件名总是以四个字符开头,您可以执行以下操作: >> filename = 'ABCD_01 36_00 3 .txt'; >> sscanf(filename, '%*4c_%*u %u_%*u %u.txt') ans =
我需要的是36号和3号。如何在matlab中实现它?我试着从以前的帖子中找到答案,但找不到一个适合这个目的的答案。谢谢您的帮助。如果文件名总是以四个字符开头,您可以执行以下操作: >> filename = 'ABCD_01 36_00 3 .txt'; >> sscanf(filename, '%*4c_%*u %u_%*u %u.txt') ans = 36 3 >>文件名='ABCD_01 36_00 3.txt'; >>sscanf(文件名“%*4c\%*u%u\%*u%u.txt”) ans= 36 3. 正则表达式:
>> str = 'ABCD_01 36_00 3 .txt';
>> t = str2double( regexp(str,'.* (\d+)_.* (\d+)','tokens','once') )
t =
36 3
文件名是否总是以这种形式出现?ABCD的长度可能会有所不同,但除此之外,所有内容都会以这种形式出现。@Tai YenChen:正则表达式非常适合这些类型的问题如果字符ABCD的长度会有所不同,您将如何解决它?您可以将其概括为:
sscanf(文件名,%*s%u\uuu%*s%u'))
@Tai Yen Chen:如果在第一个整数后面总是有空格,那么Amro的建议将解决变量前缀问题。