1、2019/2/6,第一章 MATLAB 7 简介,1,MATLAB 7课件,第一章 MATLAB 7简介 第二章 MATLAB 7的安装和用户界面 第三章 基本使用方法 第四章 数值向量和数组 第五章 字符串、单元数组和结构 第六章 数值计算功能 第七章 符 号 运 算 第八章 图 形 处 理 第九章 GUI图形设计 第十章 MATLAB 7程序设计,2019/2/6,第一章 MATLAB 7 简介,2,第一章 MATLAB 7简介,教学目标教学重点教学过程,2019/2/6,第一章 MATLAB 7 简介,3,教学目标,本章主要介绍MATLAB的一些基本情况,让大家对该软件有一个整体的认识。
2、它主要包括MATLAB的功能、发展历史以及MATLAB 7的新特点等,由于MATLAB软件在不断地更新,所以,也要介绍获取MATLAB 7最新信息的途径。,2019/2/6,第一章 MATLAB 7 简介,4,教学重点,了解MATLAB语言的基本功能和特点了解MATLAB 7的新特点和新功能,2019/2/6,第一章 MATLAB 7 简介,5,教学过程,MATLAB的初步知识MATLAB的优点MATLAB的缺点MATLAB 7的新功能,2019/2/6,第一章 MATLAB 7 简介,6,MATLAB的初步知识,MATLAB最初是由Cleve Moler用Fortran语言设计的,有关矩阵的
3、算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用 C语言开发的。MATLAB作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。,2019/2/6,第一章 MATLAB 7 简介,7,MATLAB的主要应用领域,(1)数值分析。 (2)数值和符号计算。 (3)工程与科学绘图。 (4)控制系统的设计与方针。 (5)数字图像处理。 (6)数字信号处理。 (7)通讯系统设计与仿真。 (8)财务与金融工程。,2019/2/6,第一章 MATLAB 7 简介,8,MATLAB的
4、优点,1. 容易使用 2. 可以由多种操作系统支持 3. 丰富的内部函数 4. 强大的图形和符号功能 5. 可以自动选择算法 6. 与其他软件和语言有良好的对接性,2019/2/6,第一章 MATLAB 7 简介,9,MATLAB的缺点,运行效率较低 由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。 价格比较贵(这个很多人) 一般的用户可能支付不起它的高昂费用。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。,2019/2/6,第一章 MATLAB 7 简介,10,MATLAB 7的新功能,提供了MA
5、TLAB、SIMULINK的升级以及其他最新的75个模块的升级 该版本不仅提高了产品质量,同时也提供了最新的用于数据分析、大规模建模、固定点开发和编码等新特征。,2019/2/6,第一章 MATLAB 7 简介,11,第二章 MATLAB 7的安装和 用户界面,教学目标教学重点教学过程,2019/2/6,第一章 MATLAB 7 简介,12,教学目标,本章主要介绍MATLAB 7的安装和用户界面,通过对本章的学习,用户将学会MATLAB软件的安装过程并对用户界面有一个直观的认识,2019/2/6,第一章 MATLAB 7 简介,13,教学重点,初步认识MATLAB 7的用户界面掌握MATLAB
6、 7的路径搜索,2019/2/6,第一章 MATLAB 7 简介,14,教学过程,MATLAB 7的安装过程MATLAB 7用户界面概述 MATLAB 7的路径搜索,2019/2/6,第一章 MATLAB 7 简介,15,MATLAB 7的安装 过程,用户在购买到正版MATLAB 7后,可以按照相关的说明进行安装,安装过程相对比较简单。这里不在赘述。安装MATLAB 7必须具有由Mathworks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。,2019/2/6,第一章 MATLAB 7 简介,16,MATLAB 7用户界面概述,MATLAB 7的用户界面主要包括以下
7、三个方面的内容: MATLAB 7的主菜单 MATLAB 7的工具栏 MATLAB 7的窗口,2019/2/6,第一章 MATLAB 7 简介,17,1. MATLAB 7的主菜单,MATLAB 7的主菜单包括File、Edit、Debug(调试)、Desktop、Window和Help菜单。 可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。,2019/2/6,第一章 MATLAB 7 简介,18,2. MATLAB 7的工具栏,MATLAB 7的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标 同时,MATLAB 7的工具栏适时显示MATLAB 7
8、的当前路径,用户还可以通过工具栏来改变当前路径(这个),2019/2/6,第一章 MATLAB 7 简介,19,3. MATLAB 7的窗口,打开MATLAB 7,默认打开的窗口包括: (1)命令窗口(Command Window); (2)命令历史窗口(Command History); (3)工作间管理窗口(Workspace); (4)当前路径窗口(Current Directory) 此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口 。,2019/2/6,第一章 MATLAB 7 简介,20,(1) 命令窗口,在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命
9、令窗口,也可以选择Desktop | Desktop Layout | Command Window Only命令。MATLAB 7用户界面的右侧窗口就为命令窗口。,2019/2/6,第一章 MATLAB 7 简介,21,(2) 命令历史窗口,命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询。 如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。,2019/2/6,第一章 MATLAB 7 简介,22,(3) 工作间管理窗口,工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。
10、 在默认设置下,工作间管理窗口自动显示于MATLAB界面中。,2019/2/6,第一章 MATLAB 7 简介,23,(4)当前路径窗口,在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop| Current Directory命令调出或隐藏该命令窗口。 当前路径窗口显示着当前用户工作所在的路径,2019/2/6,第一章 MATLAB 7 简介,24,MATLAB 7的路径搜索,MATLAB 7有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB 7的子目录,由于MATLAB 7
11、的一切操作都是在它的搜索路径(包括当前路径中)进行的,所以如果调用的函数在搜索路径之外,MATLAB 7就会认为此函数并不存在。,2019/2/6,第一章 MATLAB 7 简介,25,MATLAB 7的路径搜索,(1)MATLAB 7的当前目录 在命令窗口中输入cd命令,并按Enter键确认,即显示有当前MATLAB 7工作所在目录。 cd C:MATLAB71work ,2019/2/6,第一章 MATLAB 7 简介,26,MATLAB 7的路径搜索,(2)MATLAB 7的路径搜索 选择MATLAB的主窗口中File | Set Path命令 ,进入到设置路径搜索的对话框 ,用户可以设
12、置新的路径,2019/2/6,第一章 MATLAB 7 简介,27,使用帮助系统,MATLAB 7.0为用户提供了非常完善的帮助系统,例MATLAB 的在线帮助、帮助窗口、帮助提示、HTML格式的帮助、pdf格式的帮助文件及MATLAB 的示例和演示等。,2019/2/6,第一章 MATLAB 7 简介,28,第三章 基本使用方法,教学目标教学重点教学过程,2019/2/6,第一章 MATLAB 7 简介,29,教学目标,MATLAB 7的优点不仅在于强大的功能,还在于其简单易学。 本章主要是介绍MATLAB 7的基本使用方法。 用户在学习完本章的内容后,可以进行基本的数值运算,从而能够容易地
13、解决许多在学习和科研中遇到的计算问题 。,2019/2/6,第一章 MATLAB 7 简介,30,教学重点,标点符号的使用 常用的操作命令和键盘技巧 MATLAB 7的数据类型 常量和变量的使用方法 浮点数和复数的使用方法,2019/2/6,第一章 MATLAB 7 简介,31,教学过程,简单的数学运算 常用的操作命令和键盘技巧MATLAB 7的数据类型,2019/2/6,第一章 MATLAB 7 简介,32,1.简单的数学运算,最简单的计算器使用法 标点符号的使用 常用的操作命令和键盘技巧,2019/2/6,第一章 MATLAB 7 简介,33,(1)最简单的计算器使用法,直接输入法 3*3
14、0+3*35+4*30+4*32 ans =443 ,存储变量法 grade1=3*30 grade1 =90 total=grade1+grade2total =195 ,2019/2/6,第一章 MATLAB 7 简介,34,数值运算符号,2019/2/6,第一章 MATLAB 7 简介,35,(2)常用标点符号,2019/2/6,第一章 MATLAB 7 简介,36,应用举例,例4-1 清华大学土木系一年级有3个班,每班30人,二年级有3个班,每班35人,三年级有4个班,每班30人,四年级有4个班,每班32人。求清华大学土木系本科一共有多少人。 grade1=3*30; grade2=3
15、*35; grade3=4*30; grade4=4*32; total=grade1+grade2+ grade3+grade4 total =443 ,2019/2/6,第一章 MATLAB 7 简介,37,2.常用的操作命令和键盘技巧,在使用MATLAB 7语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果 。,2019/2/6,第一章 MATLAB 7 简介,38,(1)常用的操作命令,2019/2/6,第一章 MATLAB 7 简介,39,(2)常用的键盘操作和快捷键,2019/2/6,第一章 MATLAB 7 简介,40,3.MATLAB 7的数据类型,常
16、量和变量 常量 变量 浮点数和复数 浮点数 复数,2019/2/6,第一章 MATLAB 7 简介,41,(1)常量,在MATLAB中有一些特定的变量,它们已经被预定义了某个特定的值,因此这些变量被称为常量。MATLAB 7中的常量主要有pi、inf和eps等。,2019/2/6,第一章 MATLAB 7 简介,42,(2)变量,变量是MATLAB 7的基本元素之一,MATLAB 7语言不要求对所使用的变量进行事先说明,而且它也不需要指定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。 变量名长度不超过31位,超过31位的字符系统将忽略不计 变量名区分大小写
17、变量名必须以字母开头,变量名中可以包含字母、数字或下划线,但不允许出现标点符号,2019/2/6,第一章 MATLAB 7 简介,43,(3)浮点数,几乎在所有的情况下,MATLAB 7的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。这是计算机通常的表示数据的方式,但也带来了一些问题,比如有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限。所谓相对误差限是指MATLAB 7语言能够区分两个不同大小的数时,这两个数之间的最小差值。,2019/2/6,第一章 MATLAB 7 简介,44,浮点数举例,下边3个式子的计算结果是相同的,但是由于这
18、些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差 a=0.33-0.5+0.17 a =2.7756e-017 b=0.33+0.17-0.5 b =0 c=0.17-0.5+0.33 c =5.5511e-017 ,2019/2/6,第一章 MATLAB 7 简介,45,(4)复数,MATLAB 7语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操作。 a2=pi+3.14j a2 =3.1416 + 3.1400i b=4*(1+3/sqrt(-1) b =4.0000 -12.0000i ,2019/2/6,第一章 MATLAB 7
19、 简介,46,复数的数学运算 举例, a=1+2*i a =1.0000 + 2.0000i b=3-4i b =3.0000 - 4.0000i c=pi+sin(pi/2)*i c =3.1416 + 1.0000i d=a+b d =4.0000 - 2.0000i,2019/2/6,第一章 MATLAB 7 简介,47,第四章 数值向量和数组,教学目标教学重点教学过程,2019/2/6,第一章 MATLAB 7 简介,48,教学目标,本章将介绍MATLAB 7的数值计算功能,包括MATLAB 7的向量和数组,并介绍它们之间的运算。 通过对本章的学习,读者可以编写简单且功能完善的MATL
20、AB 7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB 7的数值计算方法。,2019/2/6,第一章 MATLAB 7 简介,49,教学重点,向量的运算方法关系和逻辑运算,2019/2/6,第一章 MATLAB 7 简介,50,教学过程,向量及其运算方法 数组及其运算方法 多项式的创建和运算方法 关系和逻辑运算,2019/2/6,第一章 MATLAB 7 简介,51,1.向量及其运算,在命令窗口中直接输入向量 等差元素向量的生成 向量与数的四则运算 向量与向量之间的加减运算 点积、叉积和混合积,2019/2/6,第一章 MATLAB 7 简介,52,(1)在命令窗口中直接输入
21、向量,在MATLAB 7中,生成向量最简单的方法就是在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“ ”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。, a2=15,21,27,93,101; a1=15;21;27;93;101; a1 a1 =15212793101 a2 a2 =15 21 27 93 101 ,2019/2/6,第一章 MATLAB 7 简介,53,(2)等差元素向量的生成,当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况 ,可以
22、使用冒号(:) 和linspace函数来生成等差元素向量。, vec1=10:5:60 vec1 =10 15 20 25 30 35 40 45 50 55 60 vec2=linspace (10,60,11) vec2 =10 15 20 25 30 35 40 45 50 55 60,2019/2/6,第一章 MATLAB 7 简介,54,(3) 向量与数的四则运算,向量与数的加法(减法):向量中的每个元素与数的加法(减法)运算。 向量与数的乘法(除法):向量中的每个元素与数的乘法(除法)运算。, vec1=80:-9:10 vec1 =80 71 62 53 44 35 26 17
23、vec1+101 ans =181 172 163 154 145 136 127 118 ,2019/2/6,第一章 MATLAB 7 简介,55,(4)向量与向量之间的加减运算,向量与向量的加法(减法)运算:向量中的每个元素与另一个向量中相对应的元素的加法(减法)运算。 vec1=linspace(200,500,7) vec2=linspace(900,600,7) vec3=vec1+vec2 vec3 =Columns 1 through 5 1100 1100 1100 1100 1100Columns 6 through 7 1100 1100 ,2019/2/6,第一章 MAT
24、LAB 7 简介,56,(5) 点积、叉积和混合积,两个向量的点积等于其中一个向量的模与另一个向量在这个向量的方向上的投影的乘积 叉积的几何意义是指过两个相交向量的交点,并与此两向量所在平面垂直的向量 向量的混合积的几何意义是它的绝对值表示以向量为棱的平行六面体的体积,2019/2/6,第一章 MATLAB 7 简介,57,点积、叉积运算举例,点积 运算 x1=11 22 33 44 x2=1,2,3,4 a=dot(x1,x2) a =330 sum(x1.*x2) ans =330 ,叉积运算 x1=11 22 33 x1 =11 22 33 x2=1 2 3 x2 =1 2 3 x3=c
25、ross(x1,x2) x3 =0 0 0,2019/2/6,第一章 MATLAB 7 简介,58,2. 数组及其运算,数组寻址和排序 数组的基本数值运算 数组的关系运算 数组的逻辑运算,2019/2/6,第一章 MATLAB 7 简介,59,(1) 数组寻址和排序,通过对数组下表的访问来实现数组寻址 A=rand(1,5) A =0.9501 0.2311 0.6068 0.4860 0.8913 A(4) ans =0.4860 A(2:3) ans =0.2311 0.6068,使用sort函数对数组进行排序 X = 3 7 50 4 2 sort(X,1) ans =0 4 23 7
26、5 sort(2) ans =2,2019/2/6,第一章 MATLAB 7 简介,60,(2)数组的基本数值运算,数组的加法(减法) 数组的乘法(除法) 数组的乘方,2019/2/6,第一章 MATLAB 7 简介,61,数值运算举例,加减法 X=1 4 7; Y=2 5 8; Z=X-Y Z =-1 -1 -1 V=X+Y V =3 9 15 ,乘方 X=1 4 7 X =1 4 7 Y=2 5 8 Y =2 5 8 Z=X.Y Z =1 1024 5764801,2019/2/6,第一章 MATLAB 7 简介,62,(3)数组的关系运算,两个数通常可以用6种关系来进行描述:小于()、大
27、于等于( =)、等于(= =)和不等于( =) 比较两个元素的大小时,如果结果为1,则表明关系式为真;如果结果为0,则表明关系式为假。例如关系式4+3=6(数学语言表示4与3的和小于等于6),通过上面的叙述可知,此关系式的结果为0,标明关系式为假。,2019/2/6,第一章 MATLAB 7 简介,63,(4)数组的逻辑运算,在各种逻辑运算中,有3种逻辑运算:与(&)、或(|)和非()。“&”和“|”操作符号可以比较两个标量或者两个通解数组(或矩阵);对于逻辑非“”是一个一元操作符。但是对于数组(矩阵),逻辑运算是针对于数组(矩阵)中的每一个元素。同样,当逻辑为真时,返回值为1;当逻辑为假时,
28、返回值为0。 在MATLAB 7中,逻辑运算通常可以用来生成只含有元素0和1的矩阵。,2019/2/6,第一章 MATLAB 7 简介,64,3. 多项式,多项式的创建 多项式的运算 关系和逻辑运算,2019/2/6,第一章 MATLAB 7 简介,65,(1)多项式的创建,直接输入系数向量创建多项式 特征多项式输入法 由多项式的根逆推多项式,2019/2/6,第一章 MATLAB 7 简介,66,直接输入系数向量创建多项式,由于在MATLAB 7中多项式是以向量的形式存储的,直接输入向量,MATLAB 7将按降幂自动把向量的元素分配给多项式各项的系数。而该向量可以是行向量,也可以是列向量 。
29、, P=3 5 0 1 0 12 P =3 5 0 1 0 12 y=poly2sym(P) y = 3*x5+5*x4+x2+12 disp(y) 3*x5+5*x4+x2+12 ,2019/2/6,第一章 MATLAB 7 简介,67,特征多项式输入法,MATLAB 7提供了poly函数,使用它可以由矩阵的特征多项式创建多项式。使用该方法生成多项式时,其首项的系数必为1 。, A= 3 1 4 1; 5 9 2 6;5 3 5 8; 9 7 9 3 A =3 1 4 15 9 2 65 3 5 89 7 9 3 p=poly(A); disp(poly2sym(p) x4-20*x3-16
30、*x2+480*x+1724034232352773/17592186044416,2019/2/6,第一章 MATLAB 7 简介,68,由多项式的根逆推多项式,如果已知某个多项式的根,那么,使用poly函数,可以很轻松地产生其对应的多项式。, roots=-4 -2+2i -2-2i 5 roots =-4.0000 -2.0000 + 2.0000i -2.0000 - 2.0000i 5.0000 p=poly(roots) p =1 3 -16 -88 -160 disp(poly2sym(p) x4+3*x3-16*x2-88*x-160 ,2019/2/6,第一章 MATLAB
31、7 简介,69,(2)多项式的运算,多项式的求值 求多项式的根 多项式的四则运算,2019/2/6,第一章 MATLAB 7 简介,70,多项式的求值,MATLAB 7提供了两个函数来对多项式进行求值,即polyval和polyvalm。前者以数组为计算单位,后者以矩阵为计算单位。, p=1.0000 -20.0000 -16.0000 480.0000 98.0000 p =1 -20 -16 480 98 x=4 x =4 polyval(p,x) ans =738,2019/2/6,第一章 MATLAB 7 简介,71,求多项式的根,在MATLAB 7语言里,多项式由一个行向量表示,设为
32、p,它的系数按降序排列,使用roots函数可以求出该多项式的根。其使用格式为roots(p)。, p=1 0 3 12 -7 p =1 0 3 12 -7 roots(p) ans =0.7876 + 2.4351i0.7876 - 2.4351i-2.0872 0.5121 ,2019/2/6,第一章 MATLAB 7 简介,72,多项式的四则运算,加法和减法 如果两个多项式的向量阶数相同,标准的数组加法有效。当两个多项式的向量阶数不同时,需要在低阶多项式的前边补0,使得它与相加的高阶多项式有相同的阶数。, a=8 2 2 8,b=6 1 6 1 a =8 2 2 8 b =6 1 6 1
33、c=a+b c =14 3 8 9 Y3=poly2sym(c) Y3 = 14*x3+3*x2+8*x+9,2019/2/6,第一章 MATLAB 7 简介,73,多项式的四则运算,乘法 使用conv函数对多项式进行乘法运算。 格式为c=conv(a,b),其中a和b为两个多项式的系数向量,c为相乘所生成的多项式的系数向量。, a=1 2 3 4,b=5 6 7 8; Y1=poly2sym(a) Y1 = x3+2*x2+3*x+4 Y2=poly2sym(b) Y2 = 5*x3+6*x2+7*x+8 c=conv(a,b); Y=poly2sym(c) Y = 5*x6+16*x5+3
34、4*x4+60*x3+61*x2+52*x+32,2019/2/6,第一章 MATLAB 7 简介,74,多项式的四则运算,除法 在数值计算中,经常需要用一个多项式去除另一个多项式。在MATLAB 7语言中,使用decon函数来完成该项功能。, a=1 2 3 4,b=5 6 7 8; c=conv(a,b); d=deconv(c,a); e=deconv(c,b) x=poly2sym(d),y=poly2sym(e) x = 5*x3+6*x2+7*x+8 y = x3+2*x2+3*x+4 ,2019/2/6,第一章 MATLAB 7 简介,75,多项式的四则运算,求导和积分 在MAT
35、LAB 7语言中,分别使用polyder函数和polyint函数来求多项式的导数与积分。, p=3 1 8 8 p =3 1 8 8 q=polyder(p) q =9 2 8 p1=polyint(q) p1 =3 1 8 0 ,2019/2/6,第一章 MATLAB 7 简介,76,4.关系和逻辑运算,关系操作符 逻辑操作符 关系与逻辑函数 NaNs和空矩阵 各种运算符的优先级,2019/2/6,第一章 MATLAB 7 简介,77,(1) 关系操作符,关系操作符及其功能,2019/2/6,第一章 MATLAB 7 简介,78,(2) 逻辑操作符,逻辑操作符及其功能,2019/2/6,第一
36、章 MATLAB 7 简介,79,(3) 关系与逻辑函数,关系与逻辑函数及其功能,2019/2/6,第一章 MATLAB 7 简介,80,(4) NaNs和空矩阵,NaNs和空矩阵( ) 在MATLAB 7中作特殊处理: 根据IEEE数学标准。对NaNs的几乎所有运算结果都得出NaNs。 空矩阵由MATLAB 7的生成器确定,并有它自己的特性。空矩阵是简单的,它们是MATLAB 7大小为零的变量 。, a=size() a =0 0 b=ones(4,0) b =Empty matrix: 4-by-0 size(b) ans =4 0 length(b) ans =0 ,2019/2/6,第
37、一章 MATLAB 7 简介,81,各种运算符的优先级,2019/2/6,第一章 MATLAB 7 简介,82,第五章 字符串、单元数组和结构,教学目标教学重点教学过程,2019/2/6,第一章 MATLAB 7 简介,83,教学目标,本章将介绍三种特殊的数据类型,即字符串、单元数组和结构。 使用这三种数据类型,相关的数据可以通过一个单元数组或是结构进行组织和访问,数据的管理就变得要容易一些。,2019/2/6,第一章 MATLAB 7 简介,84,教学重点,字符串的设定和操作 单元数组的操作 结构型变量的操作,2019/2/6,第一章 MATLAB 7 简介,85,教学过程,字符串的设定 字
38、符串的各种操作 单元数组的生成方法 单元数组的操作 结构型变量的生成方法 结构型变量的操作,2019/2/6,第一章 MATLAB 7 简介,86,1. 字符串的设定,在MATLAB 7中的字符串一般是ASCII值的数值数组,它作为字符串表达式进行显示。MATLAB 7对字符串的设定非常简单,只需用单引号()将需设定的字符串引注即可。, str=I have many good friends! str = I have many good friends! whosName Size Bytes ClassEXPLODE 1x5 40 double arrayF1 1x12 24 char
39、arrayF2 1x12 24 char array,2019/2/6,第一章 MATLAB 7 简介,87,2. 字符串的操作,字符串元素的读取 字符串的基本变换 字符串的运算,2019/2/6,第一章 MATLAB 7 简介,88,(1)字符串元素的读取,字符串元素的读取利用数组操作工具进行读取 使用disp函数显示字符串, str=今天,是2005年10月25日, 我们班一起去上海旅游。 str = 今天,是2005年10月25日, 我们班一起去上海旅游。 str(6) ans = 0,2019/2/6,第一章 MATLAB 7 简介,89,(2)字符串的基本变换,基本变换的种类 字符串
40、的ASCII码操作 使用char函数进行逆变换 字符串的执行, for n = 2:3 eval(M num2str(n) = magic(n) end M2 =1 34 2 M3 =8 1 63 5 74 9 2,2019/2/6,第一章 MATLAB 7 简介,90,常见字符串的操作,2019/2/6,第一章 MATLAB 7 简介,91,(3)字符串的运算,字符串的运算主要是指判断字符串是否相等,通过字符的运算来比较字符,字符串中字符的分类、查找与替换、字符串与数值的转换和数组与字符串的转换等。,2019/2/6,第一章 MATLAB 7 简介,92,判断字符串是否相等,有两个函数可以用
41、来判断两个输入的字符串是否相等。 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 ,2019/2/6,第一章 MATLAB 7 简介,93,通过字符的运算比较字符,运算符号的意义,2019/2/6,第一章 M
42、ATLAB 7 简介,94,字符串中字符的分类,字符串中的字符通常可以分为空白字符、字母字符和其他类型的字符。用户可以用isletter和isspace两个函数来对字符串中的字符进行分类 。,realstring= realstring = A=isspace(realstring) A =Columns 1 through 11 0 0 0 0 0 0 0 0 0 0 0Columns 12 through 16 0 0 0 1 1 ,2019/2/6,第一章 MATLAB 7 简介,95,. 查找与替换,查找与替换是字符串操作中的一项重要内容,MATLAB 7语言提供了findstr、s
43、trfind和strrep等函数来实现查找与替换操作。, s1=我们班的班长是是赵洁!; s2=strrep(s1,赵洁,黄远) s2 = 我们班的班长是是黄远! s3=strrep(s2,黄远! ,谁?) s3 =我们班的班长是是谁?,2019/2/6,第一章 MATLAB 7 简介,96,字符串与数值的转换,常见的字符串转换函数,2019/2/6,第一章 MATLAB 7 简介,97,字符串与数值的转换举例,使用str2num函数将字符型矩阵转换为数字矩阵 S = 1 2 ;3 4 S = % S为字符型矩阵 1 2 3 4 X=str2num(S) X = %X为数字型矩阵1 23 4,
44、2019/2/6,第一章 MATLAB 7 简介,98,2. 单 元 数 组,直接生成单元数组 使用cell函数生成单元数组 单元数组的内容的显示或获取 单元数组的变维处理,2019/2/6,第一章 MATLAB 7 简介,99,(1)直接生成单元数组,用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。 A=反对霸权,Wind Gone,100+200*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = Columns 1 through 3反对霸权 Wind Gone 1.
45、0000e+002 +2.0000e+002iColumn 44x3 double,2019/2/6,第一章 MATLAB 7 简介,100,(2)使用cell函数生成单元数组,应用举例: A=cell(2,2) A = A1,1=富强 民主 ;文明 廉洁 A = 2x4 char ,2019/2/6,第一章 MATLAB 7 简介,101,(3)单元数组的内容的显示或获取,celldisp(A,Huang) Huang1,1 =1 22 2 Huang2,1 = Tsinghua and Peking Huang1,2 = MATLAB 7 Huang2,2 =1.0000 + 5.0000
46、i 12.0000 - 4.0000i,2019/2/6,第一章 MATLAB 7 简介,102,(4)单元数组的变维处理,前边所述的对矩阵的变维处理同样也适用于对单元数组的变维处理 。 此外还可以使用reshape函数进行操作。, A=1 2 ;3 4,love;呼唤和平,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A = 2x2 double love 呼唤和平 4x3 double a=reshape(A,1,4) a = 2x2 double 呼唤和平 love 4x3 double ,2019/2/6,第一章 MATLAB 7
47、 简介,103,3. 结构型变量,直接输入法生成结构型变量 使用struct函数生成结构型变量 在结构体变量中添加成员变量 在结构体变量中删除成员变量 在结构体变量中调用成员变量 getefield和setfield函数的使用,2019/2/6,第一章 MATLAB 7 简介,104,(1)直接输入法生成结构型变量, student.test=99 56 96 87 67 69 87 76 92; student.name=Wu Qing; student.weight=68; student.height=1.72; student.num=2003214091; student.add=School of civil engneering.Tsinghua university; student.tel=1381042679*;,2019/2/6,第一章 MATLAB 7 简介,105,(2)使用struct函数生成结构型变量, truct_array=struct(d,北京,上海,strengths,40000 1000) truct_array = d: 北京 上海strengths: 40000 1000 ,2019/2/6,第一章 MATLAB 7 简介,106,(3)在结构体变量中添加成员变量,