Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String matlab中如何从字符串中求出数字_String_Matlab - Fatal编程技术网

String matlab中如何从字符串中求出数字

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 =

我想知道如何从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 >>文件名='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的建议将解决变量前缀问题。