MATLAB基础操作7——字符串处理

 字符串的表示

在MATLAB中,字符串是用单引号括起来的字符序列。MATLAB把一个字符串当作一个行向量,这个行向量中每一个元素对应一个字符,它的引用方法和数值向量相同。

>> name = 'HkSwaggyD';
>> name(1:2)

ans =

Hk

注意:如果字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。

>> 'I''m HkSwaggyD'

ans =

I'm HkSwaggyD

除了一行字符串,MATLAB也支持建立多行字符串,形成字符串矩阵。此时要求各行字符数相等,即列数要相同。因此当各行字符数不相等时,需要用空格来调节各行的长度,使它们的列数彼此相同。

例:建立一个字符串向量,然后对该向量做如下处理:

① 取第1~5个字符组成的子字符串。

② 将字符串倒过来重新排列。

③ 将字符串中的小写字母变成相应的大写字母。

④ 统计字符串中小写字母个数。


>> ch = 'ABc123d4e56Fg9';
>> subch = ch(1: 5)                    %①

subch =

ABc12

>> revch = ch(end: -1: 1)              %②

revch =

9gF65e4d321cBA

>> k = find(ch >= 'a' & ch < 'z')      %③先找出小写字母位置

k =

     3     7     9    13

>> ch(k) = ch(k) - 32                  %小写字母对应的ASCII码要减32

ch =

ABC123D4E56FG9

>> length(k)                           %④

ans =

     4

字符串的操作

MATLAB本身提供了一些函数来完成字符串的操作。

字符串的执行

eval()函数

格式:                                                eval(字符串)

作用:把参数字符串中的内容作为对应的MATLAB命令来执行。

>> x = eval('[pi, sin(pi), cos(pi)]')

x =

    3.1416    0.0000   -1.0000

字符串与数值之间的转换

我们知道字符串是以ASCII码的形式存储的,abs()double()函数都可以用来获取字符串矩阵对应的ASCII码矩阵,char()函数则把ASCII码矩阵转化为字符串矩阵。

字符串的比较

我们可以用关系运算符或字符串比较运算函数来进行字符串的比较。

关系运算符比较(当两个字符串长度相同时)

对两个字符串里的每一个字符依次按ASCII码大小逐一比较,比较结果是一个数值向量,元素由1或0构成,为对应两个字符串里字符比较的结果。

字符串比较函数(用于判断字符串是否相等)

strcmp(s1, s2):比较字符串s1和s2是否相等,如果相等,结果为1,否则为0。

strncmp(s1, s2, n):比较两个字符串前n个字符是否相等,如果相等,结果为1,否则为0。

strcmpi(s1, s2):在忽略字母大小写的前提下,比较字符串s1和s2是否相等,如果相等,结果为1,否则为0。

strncmpi(s1, s2, n):在忽略字母大小写的前提下,比较两个字符串前n个字符是否相等,如果相等,结果为1,否则为0。

字符串的查找与替换

findstr(s1, s2):返回短字符串在长字符串中的开始位置。

strrep(s1, s2, s3):将字符串s1中的所有子串s2替换为字符串s3。

>> c = 'This is a test.';
>> p = findstr('is', c)

p =

     3     6

>> r = strrep(c, 'test', 'class')

r =

This is a class.

>> 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值