您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 05-字符串单元数组和结构MATLAB7教程
MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构1第5章字符串、单元数组和结构•教学目标•教学重点•教学过程MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构2教学目标•本章将介绍三种特殊的数据类型,即字符串、单元数组和结构。•使用这三种数据类型,相关的数据可以通过一一个单元数组或是结构进行组织和访问,数据的管理就变得要容易一些。MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构3教学重点•字符串的设定和操作•单元数组的操作•结构型变量的操作MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构4教学过程•字符串的设定•字符串的各种操作•单元数组的生成方法•单元数组的操作•结构型变量的生成方法•结构型变量的操作MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构51.字符串的设定•在MATLAB7中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB7对字符串的设定非常简单,只需用单引号(’)将需设定的字符串引注即可。•str='Ihavemanygoodfriends!'•str=•Ihavemanygoodfriends!•whos•NameSizeBytesClass•EXPLODE1x540doublearray•F11x1224chararray•F21x1224chararrayMATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构62.字符串的操作•字符串元素的读取•字符串的基本变换•字符串的运算MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构7(1)字符串元素的读取•字符串元素的读取–利用数组操作工具进行读取–使用disp函数显示字符串•str='今天,是2005年10月25日,我们班一起去上海旅游。'•str=•今天,是2005年10月25日,我们班一起去上海旅游。•str(6)•ans=•0MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构8(2)字符串的基本变换•基本变换的种类–字符串的ASCII码操作–使用char函数进行逆变换–字符串的执行•forn=2:3•eval(['M'num2str(n)'=magic(n)'])•end•M2=•13•42•M3=•816•357•492MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构9常见字符串的操作函数名函数用途函数名函数用途strcat链接字符串strvcat垂直链接字符串strcmp比较字符串大小strncmp比较字符串的前n个字符findstr在其他的字符串中寻找该字符串strjust证明字符数组strmatch查找可能匹配的字符串strrep用其他字符串代替改串strtok查找字符串中的记号blanks生成空的字符串deblank删除字符串内的空格ischar字符串检验iscellstr字符串的单元检验isletter字母检验isspace空格检验stringsstrings函数的帮助MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构10(3)字符串的运算•字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构11判断字符串是否相等•有两个函数可以用来判断两个输入的字符串是否相等。–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•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构12通过字符的运算比较字符•运算符号的意义符号形式符号意义英文简写==等于eq~=不等于ne小于lt大于gt=小于或等于le=大于或等于geMATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构13字符串中字符的分类•字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。用户可以用isletter和isspace两个函数来对字符串中的字符进行分类。•realstring='•realstring=••A=isspace(realstring)•A=•Columns1through11•00000000000•Columns12through16•00011•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构14.查找与替换•查找与替换是字符串操作中的一项重要内容,MATLAB7语言提供了findstr、strfind和strrep等函数来实现查找与替换操作。•s1=‘我们班的班长是是赵洁!‘;•s2=strrep(s1,'赵洁','黄远')•s2=•我们班的班长是是黄远!•s3=strrep(s2,'黄远!'•,‘谁?')•s3=我们班的班长是是谁?MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构15字符串与数值的转换•常见的字符串转换函数函数功能函数功能hex2dec将16进制字符串转化为10进制整数dec2hex将10进制整数转化为16进制字符串bin2dec将2进制字符串转化为10进制整数dec2bin将10进制整数转化为2进制字符串base2dec转化B底字符串为10进制整数hex2num将16进制字符转化为双精度数upper改该字符串为大写lower改该字符串为小写fprintf把格式化的文本写到文件中或显示屏上sprintf用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字charASCII码转换成字符串num2str数字转换成字符串int2str整数转换成字符串MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构16字符串与数值的转换举例•使用str2num函数将字符型矩阵转换为数字矩阵•S=['12';'34']•S=%S为字符型矩阵•12•34•X=str2num(S)•X=%X为数字型矩阵•12•34MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构172.单元数组•直接生成单元数组•使用cell函数生成单元数组•单元数组的内容的显示或获取•单元数组的变维处理MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构18(1)直接生成单元数组•用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。•A={‘反对霸权','WindGone',100+200*i,[90,85,55;67,70,102;57,18,100;-200,89,78]}•A=•Columns1through3•‘反对霸权''WindGone'[1.0000e+002+2.0000e+002i]•Column4•[4x3double]MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构19(2)使用cell函数生成单元数组•应用举例:•A=cell(2,2)•A=•[][]•[][]•A{1,1}=['富强''民主';'文明''廉洁']•A=•[2x4char][]•[][]MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构20(3)单元数组的内容的显示或获取•celldisp(A,'Huang')•Huang{1,1}=•12•22•Huang{2,1}=•TsinghuaandPeking•Huang{1,2}=•MATLAB7•Huang{2,2}=•1.0000+5.0000i12.0000-4.0000i•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构21(4)单元数组的变维处理•前边所述的对矩阵的变维处理同样也适用于对单元数组的变维处理。•此外还可以使用reshape函数进行操作。•A={[12;34],‘love’;‘呼唤和平',[90,85,55;67,70,102;57,18,100;-200,89,78]}•A=•[2x2double]'love'•‘呼唤和平'[4x3double]•a=reshape(A,1,4)•a=•[2x2double]‘呼唤和平''love'[4x3double]•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构223.结构型变量•直接输入法生成结构型变量•使用struct函数生成结构型变量•在结构体变量中添加成员变量•在结构体变量中删除成员变量•在结构体变量中调用成员变量•getefield和setfield函数的使用MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构23(1)直接输入法生成结构型变量•student.test=[995696876769877692];•student.name='WuQing';•student.weight=68;•student.height=1.72;•student.num=2003214091;•student.add='Schoolofcivilengneering.Tsinghuauniversity';•student.tel='1381042679*';MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构24(2)使用struct函数生成结构型变量•truct_array=struct(‘d’,{{‘北京’,‘上海'}},'strengths',[400001000])•truct_array=•d:{‘北京’‘上海'}•strengths:[400001000]•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构25(3)在结构体变量中添加成员变量•student(1).gender='Male';%在student中添加gender和age这2项记录•student(1).age=25;•student(2).gender='Female';•student(2).age=21;•student•%查询student的结构•student=•1x2structarraywithfields:•test•name•weight•height•num•add•tel•gender•age•MATLAB7简明教程清华大学出版社2020/1/17第5章字符串、单元数组和结构26(4)在结构体变量中删除成员变量•使用函数rmfifld从结构体变量中删除成员变量。•student=rmfield(student,'age');•student=•1x2structarraywithfields:•test•name•weight•height•num•add•tel•genderMATLAB7简明教程清华大学出版社2020/1/17第5章
本文标题:05-字符串单元数组和结构MATLAB7教程
链接地址:https://www.777doc.com/doc-3118034 .html