matlab第4章-字符串单元资料课件.ppt
《matlab第4章-字符串单元资料课件.ppt》由会员分享,可在线阅读,更多相关《matlab第4章-字符串单元资料课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MatlabMatlab工程应用基础工程应用基础Application of Matlab in EngineeringApplication of Matlab in Engineering第四章第四章 字符串单元字符串单元电子信息工程教研室电子信息工程教研室电子信息工程教研室2023/2/14本章学习目标本章学习目标v掌掌掌掌握握握握字字字字符符符符串串串串数数数数组组组组、复复复复杂杂杂杂字字字字符符符符串串串串数数数数组组组组的的的的创创创创建建建建及及及及串串串串转转转转换函数与串操作函数换函数与串操作函数换函数与串操作函数换函数与串操作函数v掌掌掌掌握握握握元元元元胞胞胞胞数数数数
2、组组组组的的的的创创创创建建建建,元元元元胞胞胞胞数数数数组组组组的的的的显显显显示示示示、寻寻寻寻访访访访、扩充、收缩和重组方法及元胞数组相关函数扩充、收缩和重组方法及元胞数组相关函数扩充、收缩和重组方法及元胞数组相关函数扩充、收缩和重组方法及元胞数组相关函数v掌掌掌掌握握握握构构构构架架架架数数数数组组组组的的的的创创创创建建建建、构构构构架架架架数数数数组组组组的的的的相相相相关关关关函函函函数数数数及及及及构构构构架数组的操作架数组的操作架数组的操作架数组的操作v掌握几种数组的转换掌握几种数组的转换掌握几种数组的转换掌握几种数组的转换2第4章字符串单元电子信息工程教研室2023/2/1
3、4主要内容主要内容v3.1 3.1 字符串数组字符串数组字符串数组字符串数组 v3.2 3.2 元元元元 胞胞胞胞 数数数数 组组组组 v3.3 3.3 构构构构 架架架架 数数数数 组组组组v3.4 3.4 几种数组的转换几种数组的转换几种数组的转换几种数组的转换 3第4章字符串单元电子信息工程教研室2023/2/14内容简介内容简介vv字符串数组字符串数组字符串数组字符串数组(Character String Array)(Character String Array)(Character String Array)(Character String Array)字符串数组的属性和标识字符
4、串数组的属性和标识 复杂字符串数组的创建复杂字符串数组的创建 串转换函数和串操作函数串转换函数和串操作函数v元胞数组元胞数组 (Cell Array)Cell Array)元胞数组的创建元胞数组的创建 元胞数组的内容显示元胞数组的内容显示 元胞数组的内容获取元胞数组的内容获取 元胞数组的扩充、收缩和重组元胞数组的扩充、收缩和重组 v构架数组(构架数组(Structure Array)构架数组的创建构架数组的创建 构架数组数据的获取和设置构架数组数据的获取和设置 构架数组域的获取构架数组域的获取 数据类型归纳数据类型归纳v几种数组的转换几种数组的转换 数值数组与字符串数组转换数值数组与字符串数组
5、转换 数值数组与元胞数组的转换数值数组与元胞数组的转换 元胞数组与构架数组的转换元胞数组与构架数组的转换4第4章字符串单元电子信息工程教研室2023/2/143.1 字符串数组字符串数组(Character String Array)v1.字符串数组的创建创建字符串和创建数值是两种不同的数据类型,所以它们的创建方式也是不同;1.数值变量时通过指令窗口中的数字赋值创建的2.字符变量是在指令窗口中,先把待建的字符放在“单引号对”中再按Enter键。注:单引号必须在英文状态下输入v基本规则1.所有字符串都用单引号括起来;2.字符串中的每一个字符都是该字符串变量中的一个元素;3.字符串中的字符以ASC
6、码形式存储,因而区分大小写5第4章字符串单元电子信息工程教研室2023/2/14举例说明举例说明vv【例例3 31 1】字符串入门字符串入门 vvString1=b;String1=b;vvString2=Thisisanexample!;String2=Thisisanexample!;%英文字母、空格、数字、标点、中文字符英文字母、空格、数字、标点、中文字符vvString3=String3=例子例子chararray;chararray;%都是占一个元素位,两个字节都是占一个元素位,两个字节vvs1=class(String1)s1=class(String1)vvs1=s1=vvcha
7、rcharvvs2=size(String2)s2=size(String2)vvs2=s2=vv119119vvwhoswhosvvNameSizeBytesClassNameSizeBytesClassvvString11x12chararrayString11x12chararrayvvString21x1938chararrayString21x1938chararrayvvString31x1428chararrayString31x1428chararrayvvs11x48chararrays11x48chararrayvvs21x216doublearrays21x216doub
8、learrayvvGrandtotalis40elementsusing92bytesGrandtotalis40elementsusing92bytes6第4章字符串单元电子信息工程教研室2023/2/14v在在MATLAB中,字符串是作为字符数组来引入的;中,字符串是作为字符数组来引入的;v一个字符串由多个字符组成,用单引号一个字符串由多个字符组成,用单引号()来界定;来界定;v字符串是按行向量进行存储的,每一字符字符串是按行向量进行存储的,每一字符(包括空格包括空格)是以是以其其ASCII码的形式存放。码的形式存放。7第4章字符串单元电子信息工程教研室2023/2/143.1.1 字符串
9、数组的属性和标识字符串数组的属性和标识vv1.1.创建串数组创建串数组创建串数组创建串数组 必须将待建字符放在必须将待建字符放在“单引号对单引号对”中,当串中本身包含单引号时,每中,当串中本身包含单引号时,每个单引号符用个单引号符用“连续的两个单引号连续的两个单引号”表示。表示。vv2.2.串数组的大小串数组的大小串数组的大小串数组的大小 size指令可获得串数组的大小。串中的每一个字符,包括指令可获得串数组的大小。串中的每一个字符,包括中英文字符、中英文字符、空格、标点都算一个元素。空格、标点都算一个元素。vv3.3.串数组的元素标识串数组的元素标识串数组的元素标识串数组的元素标识 按从左至
10、右的顺序依次用按从左至右的顺序依次用1、2、3、4等标识元素在串中的位置。等标识元素在串中的位置。8第4章字符串单元电子信息工程教研室2023/2/14v4.串数组的串数组的ASCII码码 指令指令abs和和double可以显示串数组对应的可以显示串数组对应的ASCII码数值数组,指令码数值数组,指令char则可把则可把ASCII码数值数组转换成串数组。码数值数组转换成串数组。v5.字符串字符串ASCII码数组的操作码数组的操作 可以对可以对ASCII码数组进行数值数组的各种运算。但其结果就变成一般码数组进行数值数组的各种运算。但其结果就变成一般数值向量的运算,而不再是字符串的运算。数值向量的
11、运算,而不再是字符串的运算。v注意注意:必须在英文状态下输入必须在英文状态下输入“单引号对单引号对”。将多个字符串变量直接用将多个字符串变量直接用“,”连接,可构成一个较长的新字符串变连接,可构成一个较长的新字符串变 量。量。9第4章字符串单元电子信息工程教研室2023/2/14v【例32】串数组基本操作string=thisisanexample!%输入字符串stringstring=thisisanexample!s_1=string(end:-1:1)%倒序排列string得到s_1s_1=!elpmaxenasisihts_2=string(end:-2:1)%倒序排列string且每
12、隔一个字符取一个元素得到s_2s_2=!lmxasitw=string=a&string STRING=string;%定义新串STRING,其内容与string相同 STRING(w)=char(string(w)-32)%将小写字符转换成大写字符(ASCII码相差32)STRING=THISISANEXAMPLE!Str=Exm03_2.m,string(5:end)%构造新的字符串StrStr=Exm03_2.misanexample!11第4章字符串单元电子信息工程教研室2023/2/143.1.2 复杂字符串数组的创建复杂字符串数组的创建 v1.多行串数组的直接创建可以直接创建多行字
13、符串数组必须保证各行等长,可以利用增减“空格”来实现。s=Hello,6个字符Nicetomeetyou!17个字符?Errorusing=vertcatAllrowsinthebracketedexpressionmusthavethesamenumberofcolumns.s=Hello,*ones(1,11)补充11个空格Nicetomeetyou!s=Hello,Nicetomeetyou!size(s)ans=21712第4章字符串单元电子信息工程教研室2023/2/14v2.利用串操作函数创建多行串数组利用串操作函数创建多行串数组利用专门的str2mat、strvcat和char函
14、数可以构造出字符串数组,而不必考虑每行的字符数是否相等,总是按最长的设置,不足的末尾用空格补齐。13第4章字符串单元电子信息工程教研室2023/2/14s=char(Hello,Nicetomeetyou!);s=str2mat(Hello,Nicetomeetyou!);s=strvcat(Hello,Nicetomeetyou!);s1=str2mat(Hello,Nicetomeetyou!);s2=strvcat(Hello,Nicetomeetyou!);s1,s2s_s=size(s),s_s1=size(s1),s_s2=size(s2)s_s=217s_s1=317s_s2=2
15、17s=Hello,Nice to meet you!s1=s2=Hello,Hello,Nice to meet you!Nice to meet you!区别:str2mat认为空串代表空行;strvcat省略空串。14第4章字符串单元电子信息工程教研室2023/2/14v3.利用串转换函数产生数码字符串常用的数组/字符串转换函数有int2str,num2str,mat2str。int2str:把整数数组转换成字符串数组,非整数将被四舍五入后再转换;num2str:把非整数数组转换成字符串数组,常用于图形中数据点的标识;mat2str:把数值数组转换成字符串数组。15第4章字符串单元电子信
16、息工程教研室2023/2/14a=0.95760.82.151;4.057.8;23数值数组a1=int2str(a);%取整数a2=num2str(a,2);保持2位有效数字,转换为串a3=mat2str(a,2);保持2位有效数字,转换为一行串a,a1,a2,a3a=0.95760.80002.15104.00005.00007.8000a1=112458a2=0.960.82.2457.8a3=0.960.82.2;457.816第4章字符串单元电子信息工程教研室2023/2/14cleart=0:0.01:10;y=exp(-2*t).*sin(3*t);y_max,i_max=max
17、(y);t_text=t=,num2str(t(i_max);y_text=y=,num2str(y_max);max_text=char(Maxium,t_text,y_text);Title=y=exp(-2*t).*sin(3*t);Figureplot(t,zeros(size(t),k)holdonplot(t,y,b)plot(t(i_max),y_max,r.,MarkerSize,20)text(t(i_max)+0.3,y_max+0.05,max_text)title(Title);xlabel(t)ylabel(y)holdoff%清除内存变量%时间t从0到10每隔0.0
18、1均匀采样%对应每一个t求y值%求最大值y_max及其下标i_max%生成最大值点的横坐标字符串%生成最大值点的纵坐标字符串%三行字符来标识最大值点%图名称字符串%新建一个图形窗%画一条黑色的水平线%保持图形不被清除%蓝色实线画曲线y(t)%大小为20的红色圆点标记最大值点%在最大值点附近显示注释字符%显示图名%显示横坐标名%显示纵坐标名%取消图形保持【例例33】作出函数作出函数y=e-2tsin(3t)的图形,并标注最大值点的图形,并标注最大值点17第4章字符串单元电子信息工程教研室2023/2/1418第4章字符串单元电子信息工程教研室2023/2/143.1.3 串转换函数和串操作函数串
19、转换函数和串操作函数指令含义指令含义abs把串译成把串译成ASCII码码base2decbase,bin,hex与与dec之间之间的转换。的转换。base:任意进制串:任意进制串bin:二进制串:二进制串hex:十六进制串:十六进制串dec:十进制整数:十进制整数char任意类型转换成串任意类型转换成串bin2decdouble任意类型转换成双精度数值任意类型转换成双精度数值hex2decfprintf格式化数据写到文件或屏幕格式化数据写到文件或屏幕dec2basesprintf以控制格式把数值转换为串以控制格式把数值转换为串dec2binsscanf在格式控制下把串转换成数值在格式控制下把串
20、转换成数值dec2hexsetstr把把ASCII码译成串码译成串int2str整数转换成串整数转换成串str2num串转换成数值串转换成数值mat2str数值矩阵转换成串数值矩阵转换成串hex2num十六进制串转换成浮点数十六进制串转换成浮点数num2str数值转换成串数值转换成串1.字符串转换函数字符串转换函数19第4章字符串单元电子信息工程教研室2023/2/14v2.字符串操作函数length:用来计算字符串的长度(即组成字符的个数)。char(s1,s2,):将串s1,s2,逐个写成行,形成多行数组。class或ischar:用来判断某一个变量是否为字符串。class函数返回char
21、则表示为字符串,而ischar函数返回1表示为字符串。strcmp(s1,s2):比较字符串s1和s2是否相同。返回值如果为1则相同,为0则不同。findstr(s1,s2):寻找在某个长字符串s1中的子字符串s2,返回其起始位置。deblank(s):删除字符串尾部的空格。20第4章字符串单元电子信息工程教研室2023/2/14vstr1=Hello;vstr2=IlikeMATLAB%重复单引号来输入含有单引号的字符串vstr2=vIlikeMATLABvlength(str2)%字符串str2的长度vans=v15vx1=double(str1)%查看字符串str1的ASCII码vx1=
22、v72101108108111vx2=str1+1%字符串的数值运算vx2=v73102109109112vchar(x1)%将ASCII码转换成字符串形式vans=vHellovchar(x2)vans=vIfmmp21第4章字符串单元电子信息工程教研室2023/2/14vchar(str1,str2)形成两行字符vans=vHellovIlikeMATLABvstrcat(str1,!,str2,.)形成一长串vans=vHello!IlikeMATLAB.vstrcmp(str1,str2)比较两串是否相同vans=v0vfindstr(str2,like)寻找子串like的起始字符在主
23、串中的下标vans=v3visletter(str2)%以逻辑1指示串中英文字母的位置vans=vColumns1through12v101111001111vColumns13through15v110vclass(str1),class(x1),判断变量类型vans=vcharvans=vdouble22第4章字符串单元电子信息工程教研室2023/2/14执行字符串如果需要直接“执行”某一字符串,可以使用eval命令,效果就如同直接在MATLAB命令窗口内输入此命令。str3=a=2*5str3=a=2*5eval(str3)%执行字符串a=10显示字符串字符串可以直接使用disp命令显示
24、出来,即使后面加分号(;)也显示。disp(请输入2*2的矩阵a)请输入2*2的矩阵astr1=Hello,str2=IlikeMATLABstr1=Hellostr2=IlikeMATLABdisp(char(str1,str2);HelloIlikeMATLAB23第4章字符串单元电子信息工程教研室2023/2/143.2元胞数组元胞数组(Cell Array)v特点:元胞数组的基本组成单元是元胞(cell),元胞在数组中以下标来进行区分;元胞可以是任何类型、任意大小的数组(如:数值数组、字符串数组、符号对象等);一个元胞数组中各个元胞可以是不同类型的内容;元胞数组的维数不受限制,可以采用
25、单下标或全下标寻址;元胞和元胞里的内容是两个不同范畴的东西,分别通过“元胞外标识(CellIndexing)”和”元胞内编址(ContentAddressing)”来寻访。“外标识的元胞元素”用圆括号对(),而“编址元胞元素内涵”用花括号对,如A(2,3)表示元胞数组A第2行第3列的元胞,A2,3则表示元胞数组A第2行第3列的元胞中的内容。24第4章字符串单元电子信息工程教研室2023/2/143.2.1 元胞数组的创建元胞数组的创建v1.直接使用花括号创建clearA=ThisisthefirstCell.,12;34;eye(3),Tom,JaneA=1x23char2x2double3x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 字符串 单元 资料 课件
限制150内