字符串、单元数组和结构体.ppt_第1页
字符串、单元数组和结构体.ppt_第2页
字符串、单元数组和结构体.ppt_第3页
字符串、单元数组和结构体.ppt_第4页
字符串、单元数组和结构体.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

字符串、单元数组和结构体,2,字符串及其生成,字符串是MATLAB语言的重要组成部分。 一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符。实际上元素中存放的是字符的内部代码,也就是ASCII码,因此字符串为ASCII值 的数值数组,但是作为字符串表达式进行显示。 在 MATLAB 中,生成字符串的方法为 stringname=the content of the string。,3,字符串及其生成,例: str=Hefei University of Technology str = Hefei University of Technology size(str) ans= 1 30 abs(str) ans = Columns 1 through 21 72 101 102 101 105 32 85 110 105 118 101 114 115 105 116 121 32 111 102 32 84 Columns 22 through 30 101 99 104 110 111 108 111 103 121,4,字符串及其生成,字符串是一个 ASCII 码的字符数组,因此,与普通数组一样,字符串也可以形成矩阵(表现为一个字符串有多行)。但是,这些行必须有相同数目的列数。 例如: str=Hefei University of Technology ; arguments dimension consistent str = Hefei University of Technology arguments dimension consistent str=Hefei University of Technology ; arguments dimension not consistent ? Error using = vertcat CAT arguments dimensions are not consistent.,5,字符串及其生成,使用 char 函数可以创建长度不一致的字符串矩阵。char 函数自动将所有字符串的长度设置为输入字符串中长度的最大值 str=char(Hefei University of Technology ; arguments dimension not consistent) str = Hefei University of Technology arguments dimension not consistent,6,字符串操作字符串显示,字符串的显示 字符串的显示有两种方式:直接显示和利用 disp 函数进行显示。 str=Hefei University of Technology; str str = Hefei University of Technology disp(str) Hefei University of Technology 注意:disp不显示变量名,7,字符串操作字符串运算,字符串的运算主要包括: 判断字符串是否相等 通过字符串运算来比较字符串中的字符 进行字符分类、查找与替换 字符串与数值数组之间的相互转换,8,字符串操作字符串运算字符串比较,字符串的比较 字符串的比较主要为比较两个字符串是否相同,字符串中的子串是否相同和字符串中的个别字符是否相同。用于比较字符串的函数主要是 strcmp 和 strncmp。 strcmp:用于比较两个字符串是否相同。用法为 strcmp(str1,str2),当两个字符串相同时返回1,否则返回0。当所比较的两个字符串是字符数组时,返回值为一个列向量,元素为相应行比较的结果。 strncmp:用于比较两个字符串的前面几个字符是否相同。用法为 strncmp(str1,str2,n), 当字符串的前 n 个字符相同时返回1,否则返回 0。当所比较的两个字符串时单元数组时,返回值为列向量,元素为相应行比较的结果。,9,字符串操作字符串运算字符串比较,除了利用上面两个函数进行比较之外,还可以通过简单运算比较两个字符串。当两个字符串拥有相同的维数时,可以利用 MATLAB 运算法则,对字符数组进行比较。字符数组的比较与数值数组的比较基本相同,不同之处在于字符数组比较时进行比较的是字符的 ASCII 码值。进行比较返回的结果为一个数值向量,元素为对应字符比较的结果。需要注意的是在利用这些运算比较字符串时,相互比较的两个字符串必须有相同数目的元素。,10,字符串操作字符串运算字符串比较,除上面介绍的两个字符串之间的比较之外,MATLAB 还可以判断字符串中的字符是否为空格字符或者字母。实现这两个功能的函数分别为 isspace 和isletter。下面分别介绍这两个函数。 isspace:用法为 isspace(str),判断字符串 str 中的字符是否为空格,是空格字符则返回1,否则返回0。 isletter:用法为 isletter(str),判断字符串 str 中的字符是否为字母,是字母则返回1,否则返回0。,11,字符串操作字符串运算字符串查找与替换,查找与替换是字符串操作中的一项重要内容。用于查找的函数主要有 findstr,strmatch,strrep,strtok 等。 findstr:用于在一个字符串中查找子字符串,返回子字符串出现的起始位置。用法为findstr(str1,str2),执行时系统首先判断两个字符串的长短,然后在长的字符串中检索短的子字符串。 strrep:查找字符串中的子字符串并将其替换为另一个子字符串。用法为 str = strrep(str1, str2, str3),将 str1 中的所有子字符串 str2 替换为 str3。,12,字符串操作字符串运算字符串查找与替换,函数findstr和strrep应用举例: str=String Searching and Replacing; findstr (str, and) ans= 18 findstr (and, str) ans= 18 str1=strrep(str, Replacing, String Replacing) str1= String Searching and String Replacing,13,字符串操作字符串与数值之间的转化,一个字符串是由单引号括起来的简单文本。在字符串中的每个字符都是数组中的一个元素,这些数字是由 ASCII 字符表示的。这些字符和整数之间可以相互转化。 首先,可以将字符串转化为数组。 所使用的函数为abs 例: str1=Hefei University of Technology; str2=arguments dimension consistent ans1=abs(str1); ans2=abs(str2);,14,字符串操作字符串与数值之间的转化,也可以将数组转化为字符串 str=char(ans1,ans2) str= Hefei University of Technology arguments dimension consistent 还可以把数值直接变为对应的字符,注意这种情况并没有和ASCII 码对应, 或者说直接把变量的类型从数字型变为字符型。 x=-2:1:2; str=num2str(x),15,单元数组,单元数组(cell array)将不同的相关数据集成到一个单一的变量中,使得大量数据的处理和引用变得简单而方便。需要注意单元数组仅仅是承载其他数据类型的容器,不队单元数组本身进行运算。 单元数组中的每一个元素称为单元(cell)。单元中的数据可以为任何数据类型,包括数值数组、字符、符号对象、其他单元数组。不同的单元中的数据类型可以不同。,16,单元数组创建,用户可以通过两种方式创建一个单元数组: 一个是通过赋值语句直接创建; 二是利用 cell 函数先为单元数组分配一个内存空间,然后再给各个单元赋值。 直接赋值法通过给每个单元逐个赋值来创建单元数组。单元数组用花括号表示,在赋值时需要将单元内容用花括号(即)括起来。 用 cell 函数创建单元数组。步骤为:首先用 cell 函数创建一个空的单元数组,然后再为数组元素赋值,17,单元数组元素访问,使用圆括号和花括号对单元数组索引是不同的。当采用圆括号时表示的是该单元,而采用花括号时则表示的是该单元的内容。 在 MATLAB 单元数组索引中,圆括号用于标志单元、花括号用于按单元的寻址。,18,单元数组显示,在显示单元数组时 MATLAB 有时只显示单元的大小和数据类型,而不显示每个单元的具体内容。若要显示单元数组的内容,可以用 celldisp 函数。 celldisp 函数用于显示单元数组的全部内容,有时候只需要显示单元数组的一个单元,可以用花括号对单元进行索引。 除上面的单元数组查看方式外,MATLAB 支持以图形方式查看单元数组的内容。用这种方法可以直观的看出单元数组的结构。但是需要注意的是,cellplot 只能用于显示二维单元数组的内容。,19,结构数组,结构数组是除了单元数组之外,另外一种可以把不同类型数据组合在一起的数据类型。 结构数组和单元数组的区别为:结构体有一个名字,结构体的每个成员元素也有自己的名字,其元素访问是通过元素的名字来实现的。,20,ASCII码,ASCII码(American Standard Code for Information Interchange,美国标准信息交换码)是由美国国家标准局(ANSI)制定,它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。其中标准ASCII码是7位码。7位ASC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论