Matlab字符串处理

Matlab提供了大量的字符串处理函数,如下表:

函数功能函数功能
eval(string)将括号内的字符串作为一个Matlab命令执行isspace空格字符存在时返回真值
blanks(n)返回一个n个零或空格的字符串isstr输入是一个字符串时返回真值
deblank去掉一个字符串后边的空格lasterr返回上个Matlab所产生错误的字符串
feval求由字符串给定的函数值strcmp字符串相同时返回真值
Findstr从一个字符串内找出字符串strrep用一个字符串替换另一个字符串
isletter字母存在时返回真值strtok在一个字符串里找出第一个标记

下面我们来讲解一下字符串的具体操作。

一、字符串构造

1、直接赋值的方式,将一个字符串写在单引号内,如果字符串本身就包括单引号的话,就再加一个单引号。

>> str='dd''123'

str =

dd'123

2、多行字符串如果写在[]中,那么多行字符串的长度必须相同;如果写在{}内,那么长度可以不同。

>> str=['123';'345']

str =

123
345

>> str={'123';'12345'}

str = 

    '123'
    '12345'

3、使用strcat函数,strvcat和char函数

strcat函数将两个字符串进行横向的连接。

>> a='123'

a =

123

>> b='456'

b =

456

>> c=strcat(a,b)

c =

123456

strvcat将字符串进行纵向连接,每行字符串的长度不要求相等,所有非最长字符串的右边会自动补偿空格,使每行字符串的长度相同。

>> a='123'

a =

123

>> b='1234'

b =

1234

>> c=strvcat(a,b)

c =

123 
1234

char函数与strvcat类似,不过当多行字符串中有空字符串时,strvcat函数会自动进行忽略,而char函数就会把空字符串也用空格补偿后,再进行连接。

>> a='123';
>> b='123';
>> c='';
>> d='123';
>> e=strvcat(a,b,c,d)

e =

123
123
123

>> f=char(a,b,c,d)

f =

123
123

123

二、字符串比较

可以直接使用关系运算符也可以使用strcmp函数,但是两者的比较结果不同。如果使用关系运算符,要求参与比较的两个字符串的长度必须是一致的,并且返回的结果也是和两者一样大的数组,数组中的值是对应的位置上的两个字符比较的结果,但是strcmp就是比较两个字符串是否相等。

>> a='Hello';
>> b='World';
>> a==b

ans =

     0     0     0     1     0

>> strcmp(a,b)

ans =

     0

>> c='Hello';
>> strcmp(a,c)

ans =

     1

三、查找与替换

使用findstr函数可以实现字符串的查找与搜索。

>> str='Xing JIarong is so strong';
>> findstr(str,'ro')

ans =

     9    22

使用strrep函数可以对字符串中的字符进行替换。

>> strrep(str,'ro','12')

ans =

Xing JIa12ng is so st12ng

注意:

  • findstr函数对字母大小写敏感
  • findstr函数对字符串矩阵不起作用。因此字符串矩阵的搜索只能通过遍历矩阵的元素,然后在进行搜索
  • 直接赋值方法不能使两个长度不同的字符串相互替换,而strrep函数可以替换两个任意长度的字符串,strrep对字符串矩阵也不起作用。
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值