用matlab 如何提取字符串中的数字?
用正则表达式匹配吧:
>> s = '[数字一12000] [数字二28000]'
s =
[数字一12000] [数字二28000]
>> ms = regexp( s, '(?<=\w+)\d+', 'match' )
ms =
'12000' '28000'
然后将字符串转换为数字:
>> num1 = str2num( ms{ 1 } )
num1 =
12000
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 [
\f\v]
\S Not whitespace [^
\f\v]
那么你的问题就可以使用下面的代码了
>>a='5000.xls'
a =
5000.xls
>> s=a(regexp(a,'\d'))
s =
5000
这时的s是字符型的,如果你需要数字的话就是用str2num转化一下
祝你学习愉快!
其中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转化一下
祝你学习愉快!
用正则表达式匹配吧:
>>
s
=
'[数字一12000]
[数字二28000]'
s
=
[数字一12000]
[数字二28000]
>>
ms
=
regexp(
s,
'(?<=\w+)\d+',
'match'
)
ms
=
'12000'
'28000'
然后将字符串转换为数字:
>>
num1
=
str2num(
ms{
1
}
)
num1
=
12000
史虹替波: 用正则表达式匹配吧: >> s = '[数字一12000] [数字二28000]'s =[数字一12000] [数字二28000]>> ms = regexp( s, '(?<=\w+)\d+', 'match' )ms ='12000' '28000'然后将字符串转换为数字: >> num1 = str2num( ms{ 1 } )num1 =12000
宝兴县17528806883: matlab 中如何截取字符串的一部分?例如取S2001中的2001? - ?
史虹替波: str = 'S2001'; partstr = str(2:end); 即可,将str作为矩阵来看就行.
宝兴县17528806883: 请问用Matlab可以从字母数字组成的字符串中提取数字吗? - ?
史虹替波: MATLAB中字符串处理函数指令 中有个isletter,判断是否是字母 有个例子:str='Matlab R12.1';is_isletter=isletter(str) 结果是is_isletter =1 1 1 1 1 1 0 1 0 0 0 0 可见isletter的返回值是个矩阵,是字母的位置返回“1”,不是则返回“0” 因此你要的功能可以据此函数写出, 查找到为1的元素转为空矩阵后,将剩余的数字字符串转化为数值
宝兴县17528806883: 在matlab中,读取一个字符串中的某个字符的问题 - ?
史虹替波: 首先你得确定字符串中数字出现的位置有什么相似的规律,有规律的话就好处理了.比如说数字永远出现在“为”之后,等等,或者说完全没有什么规律,那只能通过字符的ascII码值来判断是否是数字了,然后提取
宝兴县17528806883: 用matlab提取.txt文件中字符串里面的数据 - ?
史虹替波: clear; fid=fopen('D:\学习\网站.txt','r'); ss=fgets(fid); ii=1; while (length(ss)~=1)bb(ii,:)=ss(end-19:end-1);ii=ii+1;ss=fgets(fid); endbb里面存储的就是提取出来的日期时间
宝兴县17528806883: 关于matlab读取字符串中部分内容?
史虹替波: 这个问题很简单!a='apple_1_1_1_crop'; ind=strfind(a,'_crop'); if~isempty(ind) b=a(1:ind(1)-1); else b=a; end b
宝兴县17528806883: MATLAB 提取字母、数字和汉字 - ?
史虹替波: A='测试账号test001' B=A; C=B(B>='0'& B<='9') B(B>='0'& B<='9')=[]; D=B((B>='a' & B<='z')|(B>='A' & B<='Z')) B((B>='a' & B<='z')|(B>='A' & B<='Z'))=[]
宝兴县17528806883: matlab怎样实现字符串截取 - ?
史虹替波: matlab中有那些操作字符串函数 除了下面的几个函数 eval(string) 作为一个MATLAB命令求字符串的值 eval(try,catch) blanks(n) 返回一个n个零或空格的字符串 deblank 去掉字符串中后拖的空格 feval 求由字符串给定的函数值 findstr 从一个字符串内找出字符串 isletter 字母存在时返回真值 isspace 空格字符存在时返回真值 isstr 输入是一个字符串,返回真值 lasterr 返回上一个所产生MATLAB错误的字符串 strcmp 字符串相同,返回真值 strrep 用一个字符串替换另一个字符串 strtok 在一个字符串里找出第一个标记
宝兴县17528806883: 如何用matlab提取字符型变量名中的部分 - ?
史虹替波: 字符串其实可以看成一个矢量,读取部分内容,只要找到想要读取部分的下标,或者需要剔除部分的下标即可.例如有字符串 'this is just for example' 如果需要得到里面的单词而不需要空格,可以使用如下代码:str='this is just for example'; i=find(...
宝兴县17528806883: matlab 如何提取数组中的字符串 - ?
史虹替波: 在matlab中有查找字符串的命令,但是不是你所要求的返回1或0; 你可以使用如下的命令:~isempty(strfind(str,'JPG')) 可以满足你的要求.