用matlab 提取字符串中的数字。

用matlab读文件名,出现1005.xls; 1.xls; 100.xls等等这样的字符串,现在想用matlab将其中的数字提出来,成为 1005 1 100......这样的数组,向高手请教。好像可以使用regexp函数,但是具体操作有点不懂

S = REGEXP(STRING,EXPRESSION)
其中EXPRESSION的取法为:
. Any character
[] Any character contained within the brackets
[^] Any character not contained within the brackets
\w A word character [a-z_A-Z0-9]
\W Not a word character [^a-z_A-Z0-9]
\d A digit [0-9]
\D Not a digit [^0-9]
\s Whitespace [ \t\r\n\f\v]
\S Not whitespace [^ \t\r\n\f\v]
那么你的问题就可以使用下面的代码了
>>a='5000.xls'

a =

5000.xls

>> s=a(regexp(a,'\d'))

s =

5000
这时的s是字符型的,如果你需要数字的话就是用str2num转化一下

祝你学习愉快!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-03
A='1005.xls; 1.xls; 100.xls'
regexp(A,'\d+(?#\.xls)','match')