第4章-字符串(MATLAB课件).ppt

上传人(卖家):晟晟文业 文档编号:5177322 上传时间:2023-02-16 格式:PPT 页数:62 大小:798KB
下载 相关 举报
第4章-字符串(MATLAB课件).ppt_第1页
第1页 / 共62页
第4章-字符串(MATLAB课件).ppt_第2页
第2页 / 共62页
第4章-字符串(MATLAB课件).ppt_第3页
第3页 / 共62页
第4章-字符串(MATLAB课件).ppt_第4页
第4页 / 共62页
第4章-字符串(MATLAB课件).ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、MATLAB 7.0MATLAB 7.0从入从入门到精通门到精通哈尔滨工业大学哈尔滨工业大学(威海威海)汽车工程学院汽车工程学院2023-2-162课程主要内容课程主要内容 第第1章章 MATLAB简介简介 第第2章章 数值运算数值运算 第第3章章 单元数组和结构单元数组和结构 第第4章章 字符串字符串 第第5章章 符号运算符号运算 第第6章章 MATLAB绘图基础绘图基础 第第7章章 程序设计程序设计 第第8章章 计算方法的计算方法的MATLAB实现实现 第第9章章 优化设计优化设计 第第10章章 SIMULINK仿真初探仿真初探2023-2-163第第4章章 字符串字符串 字符和字符串是字

2、符和字符串是MATLAB语言的重要组成部语言的重要组成部分,分,MATLAB语言提供了强大的字符串处理语言提供了强大的字符串处理功能。功能。2023-2-1644.1 字符串概念字符串概念 字符串生成:字符串生成:字符串要用单引号生成,字字符串要用单引号生成,字符串可以有多行,但每行必须有相同数目符串可以有多行,但每行必须有相同数目的列数。的列数。如果像普通矩阵一样中间加逗号或空格,如果像普通矩阵一样中间加逗号或空格,则默认为是一个字符串。则默认为是一个字符串。必须注意的是在字符数组中是要计算空格必须注意的是在字符数组中是要计算空格的,它的每个字符的,它的每个字符(包括空格包括空格)都是字符数

3、组都是字符数组的一个元素,我们可以使用前面讲的的一个元素,我们可以使用前面讲的size命命令来查看字符数组的维数。令来查看字符数组的维数。单引号一对算为一个字符,并且中间不能单引号一对算为一个字符,并且中间不能包括其他字符,主要是空格。包括其他字符,主要是空格。2023-2-165程序实例程序实例 a=asd;erty;dfghjrt;sd?Error using=vertcat All rows in the bracketed expression must have the same number of columns.2023-2-166 a=asd ;erty ;dfghjrt;sd

4、 a=asd erty dfghjrt sd2023-2-167 a=asd;erty ;dfghjrt;sd a=asd erty dfghjrt sd2023-2-168 a=abc,sdf;qwd,xcd a=abcsdf qwdxcd a=abc sdf;qwd xcd a=abcsdf qwdxcd2023-2-169 a=abcsdf;qwdxcd a=abcsdf qwdxcd2023-2-1610 a=I am a student!a=I am a student!size(a)ans=1 152023-2-16114.2 字符串合并字符串合并 水平连接:水平连接:可以用字符串

5、合并函数可以用字符串合并函数strcat()来来得到一个水平连接的新字符串,值得注意的是,得到一个水平连接的新字符串,值得注意的是,函数函数strcat()在合并字符串的同时会把字符串在合并字符串的同时会把字符串结尾的空格删掉,要保留这些空格,可以使用结尾的空格删掉,要保留这些空格,可以使用矩阵合并符矩阵合并符来实现字符串的完整合并。来实现字符串的完整合并。垂直连接:垂直连接:如果想实现字符串的上下合并如果想实现字符串的上下合并(连连接接)(即二维数组的生成即二维数组的生成),可采用,可采用strvcat函数,函数,且行之间的默认长度相同,以最长的为准,不且行之间的默认长度相同,以最长的为准,

6、不够长度的自动补空格。如果采用够长度的自动补空格。如果采用;来垂直连接来垂直连接的话,两个字符串必须要有相同的长度。的话,两个字符串必须要有相同的长度。2023-2-1612程序实例程序实例 a=wo shi;b=xue sheng.;c=strcat(a,b)c=wo shixue sheng.c=a,b c=wo shi xue sheng.c=a b c=wo shi xue sheng.2023-2-1613 a=wo shi;b=xue sheng.;c=strvcat(a,b)c=wo shi xue sheng.size(c)ans=2 102023-2-1614 a=wo sh

7、i;b=xue sheng.;d=a;b?Error using=vertcat All rows in the bracketed expression must have the same number of columns.2023-2-1615 a=wo shi ;b=xue sheng.;d=a;b d=wo shi xue sheng.size(d)ans=2 102023-2-16164.3 字符串元素读取字符串元素读取 1、使用、使用disp函数显示字符串函数显示字符串;2、如果读取字符串中某些元素,与前面数、如果读取字符串中某些元素,与前面数组的命令相同。组的命令相同。202

8、3-2-1617程序实例程序实例 a=wo shi xue sheng;disp(a)wo shi xue sheng a(5)ans=h2023-2-1618 a=wo shi xue sheng;a(4:6)ans=shi a(6:-1:4)ans=ihs2023-2-1619 a=wo shi xue sheng;a(2:2:8)ans=osix a(2:2:9)ans=osix2023-2-1620 a=wo shi xue sheng;a(2 5 8 3 1)ans=ohx w a(2:2:8,9)ans=osixu2023-2-16214.4 字符串的基本变换字符串的基本变换 字符

9、串的字符串的ASC码操作码操作 将字符串转化成其相对应的将字符串转化成其相对应的ASC码使用码使用abs函数命令,进行逆变换时使用函数命令,进行逆变换时使用char函数函数命令。命令。s=char(t1,t2,t3,.)命令生成的字符串矩阵包命令生成的字符串矩阵包含字符串含字符串t1、t2和和t3。它们的字符个数可以。它们的字符个数可以不相等。不相等。s=char(x)将包含正数的数组将包含正数的数组x转换为字符数转换为字符数组。当组。当x是一个字符型单元数组时,此命令是一个字符型单元数组时,此命令将每一个单元转换为字符型数组的对应行。将每一个单元转换为字符型数组的对应行。2023-2-162

10、2程序实例程序实例 a=wo shi xue sheng;b=abs(a)b=Columns 1 through 13 119 111 32 115 104 105 32 120 117 101 32 115 104 Columns 14 through 16 101 110 1032023-2-1623 s=char(104,109,as,113)s=h m as q s=char(wo,shi,xue sheng)s=wo shi xue sheng2023-2-1624 x=97 98;99 100;s=char(x)s=ab cd x=97,98;99,100;s=char(x)s=a

11、b cd2023-2-1625 s=char(wo,shi;xue,sheng)s=wo xue shi sheng2023-2-1626 字符串单元型数组字符串单元型数组 可以用函数可以用函数cellstr()来创建字符串单元数组,来创建字符串单元数组,使用使用class函数查看类型。函数查看类型。2023-2-1627 b=char(wo,shi,xue,sheng)b=wo shi xue sheng c=cellstr(b)c=wo shi xue sheng2023-2-1628 b=char(wo,shi,xue,sheng);c=cellstr(b);class(b)ans=ch

12、ar class(c)ans=cell程序实例程序实例2023-2-16294.5 字符串的运算字符串的运算 判断字符串是否相等判断字符串是否相等 strcmp(a1,a2)函数比较两个字符串是否相等,相函数比较两个字符串是否相等,相等返回等返回1,不相等返回,不相等返回0。strncmp(a1,a2,n)比较两个输入字符串的前几个字比较两个输入字符串的前几个字符是否相等,相等返回符是否相等,相等返回1,不相等返回,不相等返回0。strcmpi(a1,a2)函数比较两个字符串是否相等,忽函数比较两个字符串是否相等,忽略字符串的大小写,相等返回略字符串的大小写,相等返回1,不相等返回,不相等返回

13、0。strncmpi(a1,a2,n)比较两个输入字符串的前几个字比较两个输入字符串的前几个字符是否相等,忽略字符串的大小写,相等返回符是否相等,忽略字符串的大小写,相等返回1,不相等返回不相等返回0。2023-2-1630程序实例程序实例 a1=xuesheng;jiaoshi;a2=xuesheng;jiaogong;n=strcmp(a1,a2)n=1 0 n=strncmp(a1,a2,4)n=1 1 n=strncmp(a1,a2,5)n=1 02023-2-1631 a=XUESHENG;b=xuesheng;strcmp(a,b)ans=0 strcmpi(a,b)ans=120

14、23-2-1632 字符串的比较运算字符串的比较运算(关系运算符关系运算符)对字符串进行比较时,就是对字符的对字符串进行比较时,就是对字符的ASC码进行比较,符合的返回码进行比较,符合的返回1,不符合的返回,不符合的返回0。相互比较的字符创必须具有相同的尺寸。相互比较的字符创必须具有相同的尺寸。2023-2-1633程序实例程序实例 f1=asdfg;f2=asw;f1f2?Error using=gt Matrix dimensions must agree.f1=asdfg;f2=aswbi;f1=f2 ans=1 1 0 1 02023-2-1634 a1=xuesheng;jiaosh

15、i;a2=xuesheng;jiaogong;a1a2?Undefined function or method gt for input arguments of type cell.a1(1)a2(1)?Undefined function or method gt for input arguments of type cell.程序实例程序实例2023-2-1635 a1=xuesheng;jiaoshia;a2=xuesheng;jiaogong;a12a22 ans=0 0 0 0 1 0 0 0 a12=a22 ans=1 1 1 1 1 0 0 0程序实例程序实例2023-2-

16、1636 字符类型判断字符类型判断 isspace(s)命令判断字符命令判断字符s是否为空白字符,是否为空白字符,是返回结果为是返回结果为1,不是返回结果为,不是返回结果为0。isletter(s)命令判断字符命令判断字符s是否为字母字符,是否为字母字符,是返回结果为是返回结果为1,不是返回结果为,不是返回结果为0。2023-2-1637程序实例程序实例 s=a&j d#;f1=isspace(s)f1=0 0 1 0 1 0 0 f2=isletter(s)f2=1 0 0 1 0 1 02023-2-1638 字符串查找字符串查找 k=findstr(s1,s2)函数会根据所给的字符串中的

17、字函数会根据所给的字符串中的字符来查找字符串,当查找成功后返回第一个相同符来查找字符串,当查找成功后返回第一个相同字符的具体位置。字符的具体位置。s1和和s2的位置可以调换,即不的位置可以调换,即不管管s1还是还是s2都可以是被查找的对象。即在长的字都可以是被查找的对象。即在长的字符串中查找短的字符串。符串中查找短的字符串。k=strfind(test,pattern)函数会根据所给的字符串中函数会根据所给的字符串中的字符来查找字符串,当查找成功后返回第一个的字符来查找字符串,当查找成功后返回第一个相同字符的具体位置。相同字符的具体位置。s1和和s2的位置不可以调换,的位置不可以调换,只能在只

18、能在text中查找中查找pattern。当。当pattern 的长度大于的长度大于text 时返回时返回。2023-2-1639程序实例程序实例 s1=xuesheng;s2=e;k=findstr(s1,s2)k=3 6 k=findstr(s2,s1)k=3 62023-2-1640 s1=xuesheng;s2=e;k=strfind(s1,s2)k=3 6 k=strfind(s2,s1)k=2023-2-1641 字符串替换字符串替换 s=strrep(s1,s2,s3)函数会把字符串函数会把字符串s1中的中的s2子串都换成字符串子串都换成字符串s3,并返回置换后的新字,并返回置换后

19、的新字符串。符串。当当s1、s2和和s3都是单元型变量时,命令返回都是单元型变量时,命令返回一个与一个与s1、s2和和s3相同型号的单元型变量,相同型号的单元型变量,此时要保证此时要保证s1、s2和和s3的型号相同。的型号相同。s1、s2和和s3可以不都是单元型数组。可以不都是单元型数组。2023-2-1642 s1=This is a good example;strrep(s1,good,great)ans=This is a great example strrep(s1,bad,great)ans=This is a good example strrep(s1,great)ans=T

20、his is a good example程序实例程序实例2023-2-1643程序实例程序实例 s1=xuesheng;s2=e;s3=E;strrep(s1,s2,s3)ans=xuEshEng2023-2-1644 s11,1=asdfg;s11,2=sdfregh;s2=s;s31,1=l;s31,2=k;strrep(s1,s2,s3)ans=aldfg kdfregh2023-2-1645 s11,1=(asdfg);s11,2=sdfregh;s2=s;s3=l strrep(s1,s2,s3)ans=aldfg ldfregh2023-2-1646 s11,1=(asdfg);

21、s11,2=sdfregh;s21,1=d;s21,2=g;s31,1=Y;s31,2=N;strrep(s1,s2,s3)ans=asYfg sdfreNh2023-2-1647 s11,1=(asdfg);s11,2=sdfregh;s21,1=d;s21,2=g;s3=Y;strrep(s1,s2,s3)ans=asNfg sdfreNh2023-2-1648 s11,1=(asdfg);s11,2=sdfregh;s21,1=d;s21,2=g;s31,1=Y;s31,2=N;s31,3=N;strrep(s1,s2,s3)?Error using=strrep Inputs must

22、 be the same size or any one can be a scalar.2023-2-1649 字符串与数值的转换字符串与数值的转换 num2str函数用于将数字转换成字符。函数用于将数字转换成字符。t=num2str(x)可将矩阵可将矩阵x转换成一个字符串转换成一个字符串t,其精度保留其精度保留4位小数。位小数。t=num2str(x,n)同上,只是精度为保留同上,只是精度为保留n-1位位小数小数(n位数字位数字)。字符串注意空格。字符串注意空格。2023-2-1650程序实例程序实例 a=1.234521,2.341267;3.126542,5.123864 a=1.23

23、45 2.3413 3.1265 5.1239 b=num2str(a)b=1.2345 2.3413 3.1265 5.1239 b=num2str(a,7)b=1.234521 2.341267 3.126542 5.1238642023-2-1651 a=1 2;3 4 a=1 2 3 4 b=num2str(a)b=1 2 3 4 s1=class(a)s1=double s2=class(b)s2=char2023-2-1652 s=int2str(x)函数先将矩阵函数先将矩阵x中的元素取整之中的元素取整之后再将其转换为一个字符串矩阵后再将其转换为一个字符串矩阵s,按四舍,按四舍五入

24、的原则。五入的原则。x为字符型矩阵时,将其转换为一个数字矩为字符型矩阵时,将其转换为一个数字矩阵型字符串,其数值为阵型字符串,其数值为ASC码。码。2023-2-1653程序实例程序实例 a=1.2 2.5;3.6 4.7 a=1.2000 2.5000 3.6000 4.7000 t=int2str(a)t=1 3 4 52023-2-1654 a=a;f a=a f s=int2str(a)s=97 102 2*s ans=64 114 110 98 96 1002023-2-1655 str2num(x)把一个字符串转化成数值类型。把一个字符串转化成数值类型。str2double(x)函

25、数用于将字符串转换为双精函数用于将字符串转换为双精度的数值。度的数值。mat2str函数将数组转换为相应的字符串。函数将数组转换为相应的字符串。2023-2-1656程序实例程序实例 x=1 23;13 2 x=1 23 13 2 y=str2num(x)y=1 23 13 22023-2-1657程序实例程序实例 mat=magic(3)mat=8 1 6 3 5 7 4 9 2 str=mat2str(mat)str=8 1 6;3 5 7;4 9 22023-2-1658 字符串的求值字符串的求值 利用利用eval函数对字符串表达式进行求值,其函数对字符串表达式进行求值,其调用格式为:调用格式为:v=eval(f)f必须是字符串表达式。必须是字符串表达式。2023-2-1659程序实例程序实例 a1=12;a2=30;b=a1-a2;c=eval(b)c=-182023-2-16604.6 数值与字符串之间的转换函数数值与字符串之间的转换函数2023-2-16612023-2-1662谢谢!谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第4章-字符串(MATLAB课件).ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|