文档介绍:MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第1页第5章字符串、单元数组和结构体 MATLAB R2010a 基础教程清华大学出版社教学目标教学重点教学内容 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第2页教学目标?掌握字符串的生成及操作?掌握单元数组的生成及操作?掌握结构体的生成及操作 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第3页教学重点?字符串?单元数组?结构体 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第4页教学内容?字符串?单元数组?结构体 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第5页字符串的生成( 1/2 ) ?字符串的生成? MATLAB 中的字符串为 ASCII 值的数值数组,作为字符串表达式进行表示。在 MATLAB 中,生成字符串的方法为 stringname =’ the content of the string ’。 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第6页字符串的生成( 2/2 ) ?字符串是一个 ASCII 码的字符数组,因此, 与普通数组一样,字符串也可以形成矩阵(表现为一个字符串有多行)。但是,这些行必须有相同数目的列数。?另外,使用 char 函数可以创建长度不一致的字符串矩阵。 char 函数自动将所有字符串的长度设置为输入字符串中长度的最大值。 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第7页字符串的操作?字符串的显示字符串的显示有两种方式:直接显示和利用 disp 函数进行显示。?字符串的执行在 MATLAB 中可以用函数 eval 来执行字符串。 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第8页字符串的运算?字符串的运算主要包括: 、查找与替换 strcat 横向连接字符串 strvcat 纵向连接字符串 strcmp 字符串比较 strncmp 比较字符串的前 n 个字符 findstr 字符串查找 strjust 字符串对齐 strmatch 字符串匹配 strrep 字符串查找与替换 strtok 选择字符串中的部分 blanks 创建由空格组成的字符串 deblank 删除字符串结尾的空格 ischar 判断变量是否为字符串 iscellstr 判断字符串单元数组 isletter 判断数组是否由字母组成 isspace 判断是否空格 strings MATLAB 字符串句柄 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第9页字符串的比较( 1/3 ) ?字符串的比较主要为比较两个字符串是否相同, 字符串中的子串是否相同和字符串中的个别字符是否相同。用于比较字符串的函数主要是 strcmp 和 strncmp 。– strcmp :用于比较两个字符串是否相同。用法为 strcmp(str1,str2) ,当两个字符串相同时返回 1,否则返回 0。当所比较的两个字符串是单元字符数组时,返回值为一个列向量,元素为相应行比较的结果。– strncmp :用于比较两个字符串的前面几个字符是否相同。用法为 strncmp(str1,str2,n) ,当字符串的前 n 个字符相同时返回 1,否则返回 0。当所比较的两个字符串时单元数组时,返回值为列向量,元素为相应行比较的结果。 MATLAB R2010a 基础教程清华大学出版社 2017 年1月 16 日第 10 页字符串的比较( 2/3 ) ?除了利用上面两个函数进行比较之外,还可以通过简单运算比较两个字符串。当两个字符串拥有相同的维数时,可以利用 MATLAB 运算法则, 对字符数组进行比较。字符数组的比较与数值数组的比较基本相同,不同之处在于字符数组比较时进行比较的是字符的 ASCII 码值。进行比较返回的结果为一个数值向量,元素为对应字符比较的结果。需要注意的是在利用这些运算比较字符串时,相互比较的两个字符串必须有相同数目的元素。符号符号意义英文简写==等于 eq ~=不等于 ne <小于 lt >大于 gt <=小于等于 le >=大于等于 ge