05-+字符串、单元数组和结构_第1页
05-+字符串、单元数组和结构_第2页
05-+字符串、单元数组和结构_第3页
05-+字符串、单元数组和结构_第4页
05-+字符串、单元数组和结构_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 字符串、单元数组和结构 教学目标 教学重点 教学过程7/11/20221教学目标本章将介绍三种特殊的数据类型,即字符串、单元数组和结构。使用这三种数据类型,相关的数据可以通过一个单元数组或是结构进行组织和访问,数据的管理就变得要容易一些。 7/11/20222教学重点字符串的设定和操作单元数组的操作结构型变量的操作7/11/20223教学过程字符串的设定字符串的各种操作单元数组的生成方法单元数组的操作结构型变量的生成方法结构型变量的操作7/11/202241. 字符串的设定在MATLAB 7中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB 7对字符串的设

2、定非常简单,只需用单引号()将需设定的字符串引注即可。 str=I have many good friends!str =I have many good friends! whos Name Size Bytes Class EXPLODE 1x5 40 double array F1 1x12 24 char array F2 1x12 24 char array7/11/202252. 字符串的操作 字符串元素的读取 字符串的基本变换 字符串的运算 7/11/20226(1)字符串元素的读取字符串元素的读取 利用数组操作工具进行读取 使用disp函数显示字符串 str=今天,是2005

3、年10月25日, 我们班一起去上海旅游。str =今天,是2005年10月25日, 我们班一起去上海旅游。 str(6)ans =07/11/20227(2)字符串的基本变换基本变换的种类字符串的ASCII码操作使用char函数进行逆变换 字符串的执行 for n = 2:3eval(M num2str(n) = magic(n)endM2 = 1 3 4 2M3 = 8 1 6 3 5 7 4 9 27/11/20228常见字符串的操作 函 数 名函 数 用 途函 数 名函 数 用 途strcat链接字符串strvcat垂直链接字符串strcmp比较字符串大小strncmp比较字符串的前n个

4、字符findstr在其他的字符串中寻找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替改串strtok查找字符串中的记号blanks生成空的字符串deblank删除字符串内的空格ischar字符串检验iscellstr字符串的单元检验isletter字母检验isspace空格检验stringsstrings函数的帮助7/11/20229(3)字符串的运算字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。 7/11/202210判断字符串是否相等 有两个函数

5、可以用来判断两个输入的字符串是否相等。strcmp函数:比较两个字符串是否相等,当相等时,系统将返回值1,不相等时,返回值0;strncmp函数:比较两个输入字符串的前几个字符是否相等,当相等时,系统将返回值1,不相等时,返回值0。 words1=人民文学; words2=人民的同志; N=strcmp(words1,words2)N = 0 Y=strncmp(words1,words2,3)Y = 0 x=strncmp(words1,words2,1)x = 1 7/11/202211通过字符的运算比较字符 运算符号的意义符 号 形 式符 号 意 义英 文 简 写=等于eq= 不等于ne

6、大于gt=大于或等于ge7/11/202212字符串中字符的分类 字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。用户可以用isletter和isspace两个函数来对字符串中的字符进行分类 。realstring= realstring = A=isspace(realstring)A = Columns 1 through 11 0 0 0 0 0 0 0 0 0 0 0 Columns 12 through 16 0 0 0 1 1 7/11/202213. 查找与替换 查找与替换是字符串操作中的一项重要内容,MATLAB 7语言提供了findstr、strfind和str

7、rep等函数来实现查找与替换操作。 s1=我们班的班长是是赵洁!; s2=strrep(s1,赵洁,黄远)s2 =我们班的班长是是黄远! s3=strrep(s2,黄远! ,谁?)s3 = 我们班的班长是是谁? 7/11/202214字符串与数值的转换 常见的字符串转换函数函 数功 能函 数功 能hex2dec将16进制字符串转化为10进制整数dec2hex将10进制整数转化为16进制字符串bin2dec将2进制字符串转化为10进制整数dec2bin将10进制整数转化为2进制字符串base2dec转化B底字符串为10进制整数hex2num将16进制字符转化为双精度数upper改该字符串为大写l

8、ower改该字符串为小写fprintf把格式化的文本写到文件中或显示屏上sprintf用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字charASCII码转换成字符串num2str数字转换成字符串int2str整数转换成字符串7/11/202215字符串与数值的转换举例使用str2num函数将字符型矩阵转换为数字矩阵 S = 1 2 ;3 4 S = % S为字符型矩阵1 23 4 X=str2num(S)X = %X为数字型矩阵 1 2 3 47/11/2022162. 单 元 数 组 直接生成单元数组 使用cell函数生成单元数组 单元数组的内容的显示或获取 单元数组的

9、变维处理 7/11/202217(1)直接生成单元数组用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。 A=反对霸权,Wind Gone,100+200*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78A = Columns 1 through 3 反对霸权 Wind Gone 1.0000e+002 +2.0000e+002i Column 4 4x3 double7/11/202218(2)使用cell函数生成单元数组应用举例: A=cell(2,2)A = A1,1=富强

10、民主 ;文明 廉洁A = 2x4 char 7/11/202219(3)单元数组的内容的显示或获取celldisp(A,Huang)Huang1,1 = 1 2 2 2Huang2,1 =Tsinghua and PekingHuang1,2 =MATLAB 7 Huang2,2 = 1.0000 + 5.0000i 12.0000 - 4.0000i 7/11/202220(4)单元数组的变维处理 前边所述的对矩阵的变维处理同样也适用于对单元数组的变维处理 。此外还可以使用reshape函数进行操作。 A=1 2 ;3 4,love;呼唤和平,90, 85, 55; 67, 70, 102;

11、 57, 18, 100; -200, 89, 78A = 2x2 double love 呼唤和平 4x3 double a=reshape(A,1,4)a = 2x2 double 呼唤和平 love 4x3 double 7/11/2022213. 结构型变量直接输入法生成结构型变量使用struct函数生成结构型变量 在结构体变量中添加成员变量 在结构体变量中删除成员变量 在结构体变量中调用成员变量 getefield和setfield函数的使用 7/11/202222(1)直接输入法生成结构型变量 student.test=99 56 96 87 67 69 87 76 92; stu

12、=Wu Qing; student.weight=68; student.height=1.72; student.num=2003214091; student.add=School of civil engneering.Tsinghua university; student.tel=1381042679*;7/11/202223(2)使用struct函数生成结构型变量 truct_array=struct(d,北京,上海,strengths,40000 1000)truct_array = d: 北京 上海 strengths: 40000 10007/11/2022

13、24(3)在结构体变量中添加成员变量 student(1).gender=Male; %在student中添加gender和age这2项记录 student(1).age=25; student(2).gender=Female; student(2).age=21; student %查询student的结构student = 1x2 struct array with fields: test name weight height num add tel gender age7/11/202225(4)在结构体变量中删除成员变量 使用函数rmfifld从结构体变量中删除成员变量 。 student=rmfield(student,age);student = 1x2 struct array with fields: test name weight height num add tel gender7/11/202226(5) 在结构体变量中调用成员变量 student(1).test %从结构体变量中取出相关信息ans = 99 56 96 87 67 69 87 76 92 student(1).test(5) ans = 67 student(1).addans =School of ci

温馨提示

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

评论

0/150

提交评论