MATLAB字符串函数
字 符 串 函 数 | |
eval(string) | 作为一个MATLAB命令求字符串的值 |
eval(try,catch) | |
blanks(n) | 返回一个n个零或空格的字符串 |
deblank | 去掉字符串中后拖的空格 |
feval | 求由字符串给定的函数值 |
findstr | 从一个字符串内出字符串 |
isletter | 字母存在时返回真值 |
isspace | 空格字符存在时返回真值 |
isstr | 字符串转数组matlab输入是一个字符串,返回真值 |
lasterr | 返回上一个所产生MATLAB错误的字符串 |
strcmp | 字符串相同,返回真值 |
strrep | 用一个字符串替换另一个字符串 |
strtok | 在一个字符串里出第一个标记 |
列在上面的第一个函数eval给MATLAB提供宏的能力。其中,该函数提供了将用户创建的函数名传给其它函数能力,以便求值。它的应用例子包括:
» a=eval(' sqrt(2) ') a = 1.4142
» eval(' a=sqrt(2) ') a = 1.4142
上面的例子演示了函数eval。显然,它们不是计算2的平方根的最简单方法。当被求值的字符串是由子字符串连接而成,或将字符串传给一个函数以求值时,eval非常有用。说明这种用途例子本书的以后会提及。
如果字符串传递到eval不能被辨认,MATLAB提供下列语法:
» eval(' a=sqrtt(2) ',' a=[ ] ') a = [ ]
这里第二个参量被执行。由于第一个参量有误,即sqrtt不是一个有效的MATLAB函数。这种形式经常被描述为eval(try,catch)。
函数feval与eval类似,但在用法上有更多的限制。feval(' fun ',x)求由字符串' fun '给定的
函数值,其输入参量是变量x。即feval(' fun ',x)等价于求fun(x)值。例如,
» a=feval(' sqrt ' ,2) a = 1.4142
函数eval,feval的基本用途限在用户创建的函数内。一般地,feval可求出有大量输入参量的函数值,例如,feval(' fun ', x, y, z) 等价于求fun(x, y, z)值。
列在上面表中的许多字符串函数提供了基本的字符串语法分析能力。例如,findstr返回一个在另一个字符串内字符串的起始下标值。
» b=' Peter Piper picked a peck of pickled peppers ' ;
» findstr(b,' ') % find space
ans = 6 12 19 21 26 29 37
» findstr(b,' p ') % find the letter p
ans = 9 13 22 30 38 40 41
» find(b= = ' p ') % for single character searches the find command works too
ans = 9 13 22 30 38 40 41
» findstr(b, ' cow ') % find the word cow ans = [ ]
» findstr(b,' pick ') % find the string pick ans = 13 30
注意这个函数对大小写是敏感的,当不匹配时,返回空矩阵。findstr对字符串矩阵不起作用。
» strrep(b, ' p ', ' P ') % capitalize all p ' s
ans = Peter PiPer Picked a Peck of Pickled PePPers
» strrep(b, ' Peter ', ' Pamela ') % change Peter to Pamela
ans = Pamela Piper picked a peck of pickled peppers
正如上面所看到的,strrep执行简单的字符串替代。strrep对字符串矩阵不起作用。
函数strtok出由特定字符指定的字符串内的标记,空格是缺省限定字符。例如,
» disp(b) Peter Piper picked a peck of pickled peppers
» strtok(b) % find first token in above string separated by whitespace
ans = Peter
» [c, r]=strtok(b) % return the remainder of the string array in r
c = Peter
r = Piper picked a peck of pickled peppers
» [d,s]=strtok(r) %find the next token by using the previous remainder
d = Piper s = picked a peck of pickled peppers
用空格作为限定符,strtok出在数组中的单词。strtok对字符串矩阵不起作用。
» [d, s]=strtok(b, ' pP ') %let delimiter be lower or upper case P
d = eter s = Piper picked a peck of pickled peppers
如果提供一个可选的字符串,它的字符是限定符。注意在标记里,不返回限定符,但返回所有限定符之前的字符。也就是,在上面的字符串d = eter末端有一个空格。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论