收藏 分销(赏)

MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt

上传人:a199****6536 文档编号:10095175 上传时间:2025-04-21 格式:PPT 页数:256 大小:8.82MB
下载 相关 举报
MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt_第1页
第1页 / 共256页
MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt_第2页
第2页 / 共256页
MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt_第3页
第3页 / 共256页
MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt_第4页
第4页 / 共256页
MATLAB程序设计及应用(第2版)课件全书教学教程电子教案幻灯片.ppt_第5页
第5页 / 共256页
点击查看更多>>
资源描述

1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,MATLAB,程序设计及应用(第,2,版),第,1,章,MATLAB,入门与基本操作,1.1 MATLAB,的发展沿革,MATLAB,是美国,New Mexico,大学的数学和计算机教授,Cleve Moler,在,20,世纪,70,年代中后期讲

2、授线性代数课程时首创的,全名为,MATrix LABoratory,(矩阵实验室)。,特点:,用,Fortran,语言编写的,只能做矩阵运算;,绘图用星号描点的形式画图;,提供了几十个内部函数。,第,1,章,MATLAB,入门与基本操作,1984,年,,Cleve Moler,等一批数学家和软件专家成立了,MathWorks,软件开发公司,对,MATLAB,进行了大规模的扩展和改进,并与同年推出了第一个,MATLAB,的商用版本。,特点:,采用,C,语言进行改写;,具有较多的内部函数。,1.1 MATLAB,的发展沿革,1993,年推出了,MATLAB4.0,版,同年又推出了,MATLAB4.

3、2,版。,特点:,基于,PC,的以,Windows,为操作系统平台;,增加了,Simulink,,,Control,,,Neural Network,,,Optimization,,,Signal Processing,,,Spline,,,Robust Control,等工具箱;,4.2,版首次开发了,Symbolic Math,工具箱。,1.1 MATLAB,的发展沿革,1997,年推出了,MATLAB5.0,版。,特点:,基于,Windows 95,;,实现了真正的,32,位运算,数值计算更快;,图形表现更丰富有效,编程更简洁直观;,用户界面十分友好。,1.1 MATLAB,的发展沿革,

4、2000,年推出了,MATLAB6.0,版(,Release 12,)。,特点:,在核心数值算法、界面设计、外部接口、应用桌 面等方面有了极大的改进。,1.1 MATLAB,的发展沿革,2004,年推出了,MATLAB7.0,版(,Release 14,)。,特点:,集成了,MATLAB7.0,编译器、,Simulink6.0,图形仿真器及许多工具箱,在编程环境、代码效率、数据可视化、文件,I/O,等方面都进行了全面的升级。,1.1 MATLAB,的发展沿革,从,2006,年开始,,MathWorks,公司在产品的发表模式发生了变化。每年的,3,月和,9,月进行两次产品发布,版本的命名方式为“

5、R+,年份,+,代码”,对应于上下半年的代码分别是,a,和,b,。,MATLAB R2013b,(即,MATLAB8.2,版)是,2013,年,9,月推出的产品。,最近一次版本更新是,2015,年,9,月推出的,MATLAB R2015b,,对许多工具箱作了相应的升级,使得,MATLAB,的功能更强,应用更简便。,1.1 MATLAB,的发展沿革,1.2 MATLAB,的特点及应用领域,优点:,(,1,)以复数数组(包括矩阵)作为基本编程单元,每个变量代表一个数组,其中的每个元素都可以是复数。数组的维数不需要预先定义即可采用,还可以随时改变数组的尺寸,。,(,2,)易学易用,函数名和表达式更

6、接近书写计算公式的思维表达方式。使用,MATLAB,编程犹如在草稿纸上排列公式和求解问题。,第,1,章,MATLAB,入门与基本操作,1.2 MATLAB,的特点及应用领域,(,3,)是一种面向科学和工程计算的高级语言。它以数组运算为基础,极少的代码就可以实现复杂的功能。,(,4,)具有强大而智能化的图形功能。,(,5,)提供了许多面向应用问题求解的工具箱函数,从而大大方便科研人员的使用。,(,6,)开放性好,易于扩充。,(,7,)与,C,语言和,Fortran,语言有良好的接口,可以实现混合编程。,1.2 MATLAB,的特点及应用领域,缺点:,(,1,)运行效率较低,执行相同功能的代码运行

7、时间较长。,(,2,)用户编制的程序文件为文本文件,可以用文本编辑器直接打开,不利于保密。,(,3,)访问硬件的能力相对较差,图形用户界面功能不够灵活。,1.2 MATLAB,的特点及应用领域,应用领域:,数据分析;,数值与符号计算;,工程与科学绘图;,控制系统设计;,电路分析计算;,通信系统设计与仿真;,航天工业;,汽车工业;,生物医学工业;,语音处理;,图像与数字信号处理;,财务、金融分析;,建模、仿真与样机开发;,新算法研究开发。,1.3 MATLAB,的安装启动,与操作桌面简介,1.3.1 MATLAB,的安装和启动,第,1,章,MATLAB,入门与基本操作,MATLAB,可以在,Wi

8、ndows,环境下直接安装。在,MATLAB,安装完成后,会在,Windows,桌面上自动生成,MATLAB,的快捷方式图标 。,1.3.1 MATLAB,的安装和启动,双击图标 ,就打开了如图,1.1,所示的,MATLAB,默认窗口(,Desktop,)。,图,1.1,1.3 MATLAB,的安装启动,与默认窗口简介,1.3.2,MATLAB,默认窗口简介,图,1.1,所示的,MATLAB,默认窗口分为,5,个区域:指令窗、当前目录窗、历史指令窗、工作空间,窗,和,Details,窗。,另外,在,MATLAB,默认窗口的上方,还嵌入了菜单栏和工具栏,如图,1.1,所示。它们的使用及选择方式与

9、Windows,环境中的相同。,1.3.2,MATLAB,默认窗口简介,指令窗(,Command Window,),该窗口是进行各种,MATLAB,操作的最主要窗口。它位于,MATLAB,默认窗口的正中间。,用户可以在该窗口中提示符“,fx,”,后直接键入指令,按“,Enter”,键后,即可运行并显示除窗口外的所有运行结果。当指令窗口提示符为“,fx,”,时,表示系统已经准备好,用户可以输入指令、函数、表达式,按“,Enter”,键后便可执行。,当前目录窗(,Current Directory Browser,),该窗口位于,MATLAB,默认窗口的左上方。它,显示了当前目录下所有文件的文件

10、名、文件类型、最后修改时间和文件相关描述等信息。,1.3.2,MATLAB,默认窗口,简介,历史指令窗(,Command History,),该窗口位于,MATLAB,默认窗口的右下方。它自动记录自,MATLAB,安装起所有已经运行过的指令、函数、表达式,以及它们的运行日期和时间。该窗口中的所有指令、文字都允许复制、重新运行及用于产生,M,文件。,工作空间窗(,Workspace Browser,),该窗口位于,MATLAB,默认窗口的右上方,。它列出了,MATLAB,工作空间中所有的变量名、大小、字节数和变量类型说明。在该窗口中,可以对变量进行观察、编辑、提取、保存和删除等操作。,1.3.2

11、MATLAB,默认窗口,简介,Details,窗,该窗口位于,MATLAB,默认窗口的右下方,用于显示文件的细节。,在,MATLAB,默认窗口,上方,还嵌入了菜单栏和工具栏,,它们的使用及选择方式与,Windows,环境中的相同。,1.3 MATLAB,的安装启动,与默认窗口简介,1.3.3,MATLAB R2013b,界面菜单工具栏,MATLAB R2013b,的界面相比较与其旧版本有了很大的差别,菜单和工具合为一体,即菜单工具。在,MATLAB,启动后,在默认窗口(见图,1.1,)的上方,用户可以看到如图,1.2,所示的菜单工具栏。顶层菜单有,HOME,(基本菜单和工具)、,PLOTS,

12、绘图工具)和,APPS,(应用程序)共,3,项。,图,1.2,1.4 MATLAB,指令窗操作入门,1.4.1 MATLAB,指令窗简介,第,1,章,MATLAB,入门与基本操作,MATLAB,指令窗位于,MATLAB,默认窗口的正中间,如图,1.1,所示。如果用户希望得到脱离默认窗口的几何独立的指,令窗,只要单击图,1.2,中的图标 ,并在下拉菜单中选择,就可以获得如图,1.3,所示的指令窗。,1.4.1 MATLAB,指令窗简介,图,1.3,如果希望让几何独立的指令窗嵌入回,MATLAB,默认窗口中,则只要单击下拉菜单中的图标 即可。,1.4 MATLAB,指令窗操作入门,1.4.2,最

13、简单的计算器使用方法,【,例,1.1】,求,55+5(7.5-0.5)23,的运算结果。,图,1.3,1.4.2,最简单的计算器使用方法,【,说明,】,MATLAB,指令是带有提示符“,”,的,从而可以区分是指令还是,MATLAB,给出的结果。,MATLAB,的运算符(如、等)都是各种计算程序中常见的习惯符号。,在键入一条指令后,必须按下“,Enter”,键,该条指令才会被执行。,计算结果显示中的“,ans”,是英文“,answer”,的缩写,其含义是“运算答案”。这是,MATLAB,中的一个预定义的默认变量。,1.4.2,最简单的计算器使用方法,【,例,1.2】,简单数组 的输入。,1.4.

14、2,最简单的计算器使用方法,【,说明,】,直接输入数组时,数组元素之间用空格或逗号分隔,数组行之间用分号分隔,整个数组放在方括号对“,”里。注意:,标点符号必须在英文状态下输入!,在,MATLAB,中,不必事先对数组的维数进行任何说明,存储将自动配置。,指令执行后,数组,A,被保存在,MATLAB,的工作空间中。如果用户不对它进行重新赋值,或用,clear,指令清除它,该数组将会一直保存在工作空间中,直到本次,MATLAB,指令窗被关闭为止。,MATLAB,对字母的大小写是敏感的。在本例中,数组赋给了变量,A,,而不是小写的,a,。,1.4.2,最简单的计算器使用方法,按,照,MATLAB,的

15、变量定义规则,将所有变量都定义为数组。标量被看作(,11,)的数组,向量认为是(,1,n,)或(,m,1,)的数组,矩阵认为是(,m,n,)的数组。,1.4.2,最简单的计算器使用方法,【,例,1.3】,数组的分行输入,【,说明,】,在这种输入法中,,“,Enter”,键用来分隔数组中的行。,1.4.2,最简单的计算器使用方法,【,例,1.4】,指令的续行输入,【,说明,】,MATLAB,用,3,个或,3,个以上的连续黑点表示“续行”,即下一行是上一行的继续。,1.4 MATLAB,指令窗操作入门,1.4.3,数值、变量和表达式,1.,数值的记述,MATLAB,的数值采用习惯的十进制表示,可以

16、带小数点或负号。以下记述都合法,4 100 0.0001 6.789 8.7e6 1.8e56,在采用,IEEE,浮点算法的计算机上,数值通常采用“占用,64,位内存的双精度”表示。其相对精度是,eps,(,MATLAB,的一个预定义变量),大约保持有效数字,16,位。数值范围大致从,10,-308,到,10,308,。,除了一般实数数据之外,,MATLAB,还支持复数数组和字符串型数组。,1.4.3,数值、变量和表达式,2,.,变量命名规则,MATLAB,中变量名应该由一个英文字母打头,后面可以跟字母、数字、下划线等,变量名最多不超过,63,个字符。,MATLAB,中变量名是区分大小的。,有

17、些变量名不能用。例如,,sin,(它是,MATLAB,中定义的正弦函数名)。但,SIN,和,Sin,可以用。,1.4.3,数值、变量和表达式,3,.,预定义变量,MATLAB,中有一些所谓的“预定义变量”(,Predefined Variable,),如表,1.1,(,p.8,)所示。每当,MATLAB,启动时,这些变量就自动产生并取表中的预定义值。这些变量都有特殊的含义和用途。如果用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值“临时”覆盖,原始的特殊取值将会丢失。,习惯于其他程序设计语言编程的读者最有可能将,预定义变量“,i,”,和“,j,”,作为循环变量使用,而破

18、坏其默认值。,建议:,在编写指令和程序时,尽量不对表,1.1,中所列预定义变量重新赋值,以免产生混淆。,1.4.3,数值、变量和表达式,4,.,运算符和,表达式,MATLAB,中的算术运算符和其他程序设计语言的表现形式相同。但由于,MATLAB,是面向矩阵,/,数组运算设计的,标量被看作(,1,1,)的矩阵,/,数组,“乘、除和幂”运算的规则与一般矩阵运算有所不同。除法运算包括了“左除”和“右除”两种运算。具体说明详见第,2,章。,1.4.3,数值、变量和表达式,MATALAB,书写表达式的规则与“手写算式”几乎完全相同,也与其他程序设计语言没有多少差别。,表达式由变量名、运算符和函数名组成。

19、表达式按常规的优先级从左到右执行运算。,优先级的基本规定是:指数运算级别最高,乘除运算其 次,加减运算级别最低。,括号可以改变运算的次序。,书写表达式时,赋值符“,=”,和运算符两侧允许有空格,以增加可读性。,1.4 MATLAB,指令窗操作入门,1.4.4,工作空间与变量管理,对于如图,1.1,所示的默认窗口,直接点击工作空间窗中的变量名就可以进行相应的操作。,1.4.4,工作空间与变量管理,右击,【,例,1.2】,结果图中,A,的图标,可以根据下拉菜单进行相应操作。,1.4.4,工作空间与变量管理,还可以双击,A,的图标,在弹出的窗口中对,A,的内容进行修改,也可以改变,A,的尺寸。,对

20、于如图,1.3,所示的几何独立的指令窗,则可以通过三个常用指令:,who,,,whos,和,clear,进行。,在指令窗中运行,who,指令和,whos,指令,可以获得有关工作空间中变量的相关信息;而运行,clear,指令则可以删除一些不再使用的变量,使整个工作空间更简洁。,1.4.4,工作空间与变量管理,【,例,1.5】,在指令窗中运行指令,who,,,whos,和,clear,的示例。,1.4.4,工作空间与变量管理,【,说明,】,可以把多条指令放在同一行上输入,中间用逗号或分号分隔。如果采用了分号,则不显示该条指令的运行结果。,1.4.4,工作空间与变量管理,whos,指令将列出全部变量

21、的变量名(,Name,)、大小(,Size,)、字节数(,Bytes,)、变量类型(,Class,)。除了列出了各个变量的相关信息外,还给出了整个工作空间的占用情况。,MATLAB,将所有的变量都作为数组来看待。,1.4.4,工作空间与变量管理,clear,指令中,,X1,和,Y1,之间不能加逗号或分号,只能用空格分隔;否则该指令就会被错误地解释成删除,X1,变量,然后运行下一条指令(其内容为,Y1,),而下一条指令将被解释成将,Y1,变量的内容显示出来,这样,Y1,变量就不会被删除。,1.4.4,工作空间与变量管理,应当特别注意:,单独键入,clear,指令,,将无条件删除,MATLAB,工

22、作空间中的全部变量!系统不会要求用户确认该指令,所有变量都被清除,并且不能恢复!,1.4 MATLAB,指令窗操作入门,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,1.,默认的输入显示方式,从,MATLAB7.0,版本开始起规定:输入指令中的,if,for,end,等控制数据流的,MATLAB,关键词自动地采用蓝色字体显示;输入指令中的非控制指令、数码,都自动地采用黑色字体显示;输入的字符串自动地采用紫色字体显示。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,2.,运算结果的显示,在指令窗中显示的输出有:指令执行后,数值结果采用黑色字体输出;而运行过程中的出错信息用红色

23、字体显示。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,系统用红色的字体告知矩阵的维数不一致。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,结果的输出一般默认采用“,format short g,”,格式,显示出,5,位有效数字。不要误认为,运算结果的精度只有,5,位有效数字。,MATLAB,的数值数据通常占用,64,位(,Bit,)内存,以,16,位有效数字的“双精度”进行运算和输出。可以根据需要,在指令窗中直接输入相应的指令,获得所需的数值计算结果显示格式。表,1.2,(,p.10,),给出了这些常用的数字显示格式。,【,例,1.6】,在指令窗中运行,format,

24、指令的示例。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,【,说明,】,在选择不同的数字显示格式时,,MATLAB,并不改变数字的大小,只改变显示格式。,一旦键入了上述某条,format,指令后,工作空间中的所有数据均采用同一格式显示。并且,在下一次键入,format,指令前,所有数据均按照本次,format,指令,规定的格式显示。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,3.,指令窗中指令行的编辑,由于,MATLAB,把指令窗中输入的所有指令都记录在内存中专门的“历史指令”(,Command History,)空间中,因此,MATLAB,的指令窗不仅可以对输入执行

25、过的指令进行编辑和运行,而且可以对已输入的指令进行回调、编辑和重新运行。常用的操作键如表,1.3,(,p.11,)所示。,1.4.5,指令窗的显示方式与指令行的编辑,及标点符号,4.,指令窗中的标点符号,MATLAB,中的标点符号的作用如表,1.4,(,p.12,)所示。,需要特别提醒的是:,在向指令窗中输入指令时,一定要在英文状态下输入,。,1.4 MATLAB,指令窗操作入门,1.4.6,在线帮助,为了帮助用户在繁多的,MATLAB,指令中找到所需的指令并且了解指令的使用方式,,MATLAB,提供了广泛的在线帮助功能。最常用的功能是:,help,指令和,lookfor,指令。,1.,hel

26、p,指令,在指令窗中运行,help,指令可以获得不同程度的帮助。,【,例,1.7】,在指令窗中运行,help,指令的示例。,1.4.6,在线帮助,(,1,)运行,help,引出主题(,Topics,)分类列表,1.4.6,在线帮助,(,2,)运行,help topic,引出具体主题下的函数名(,FunName,)列表,1.4.6,在线帮助,(,3,)运行,help FunName,获得具体函数的用法说明,1.4.6,在线帮助,(,4,)运行,help help,获得如何使用,help,的信息,1.4.6,在线帮助,2.,lookfor,指令,lookfor,指令根据关键词提供帮助。,【,例,1

27、8】,寻找所有求解,riccati,方程的指令和解释语句。,1.4.6,在线帮助,第,2,章 数值数组及其运算,MATLAB,程序设计及应用(第,2,版),2.1,数值数组的创建、标识、,查询和定位,出于数值运算离散本质的考虑,也出于“向量化”快速处理数据的需要,,MATLAB,总把数值数组看作是存储和运算的基本单元,标量数据被看成是,(11),的数组,而矩阵则是,(,m,n,),的数组。,第,2,章 数值数组及其运算,这是最简单,也是最通用的创建方法。,【,例,1.1】,【,例,1.4】,就是采用这种方法创建的。复数矩阵(即二维复数数组)的输入也很简单。,2.1,数值数组的创建、标识、,查

28、询和定位,2.1.1,数组的创建,1.,逐个元素输入法,2.1.1,数组的创建,【,例,2.1】,产生复数数组,注意:,虚数部分的几种输入表示方法,其中,i,和,j,的意义相同。,2.1.1,数组的创建,若将指令中“,j*5,”,改成“,j5,”,,系统会提示出错,因为,j5,是一个未被定义或赋值的变量。,2.1.1,数组的创建,B,数组创建后,可以用,real,,,imag,,,abs,,,angle,函数来求出其对应的实部数组、虚部数组、幅值数组和相角数组(参见,p.26,表,2.2,)。左图给出了求取对应的虚部数组的函数指令和结果。,2.1.1,数组的创建,2.,冒号“,:”,生成法,M

29、ATLAB,定义了独特的冒号表达式来给一维“行”数组赋值,其通用格式为:,x=a:inc:b,其中,,a,是生成数组的第一个元素;,inc,是采样点之间的间隔,即步距。如果(,b,a,)是,inc,的整倍数,则生成数组的最后一个元素等于,b,;否则不等于,b,。如果,inc,的值为正值,则要求,ab,,否则结果为一个“空”数组。如果省略了,inc,,则步距值默认为,1,。,【,例,2.2】,以,0,为初值,,0.2,为步距,,1.76,为终值,产生一个“行”数组。,2.1.1,数组的创建,由于,1.76,不是,0.2,的整倍数,所以产生的最后一个元素为,1.6,,而不是,1.76,。,2.1.

30、1,数组的创建,3.,定数线性采样法(,linspace,函数),该法在设定“总点数”的前提下,均匀采样产生一维“行”数组。该法的通用格式为:,x=linspace(a,b,n),其中,,a,和,b,分别是生成数组的第一个和最后一个元素;,n,是采样总点数。该指令的作用与指令,x=a:(b-a)/(n-1):b,相同。,与前一种方法相比,在于,b,一定能够被,采到。,【,例,2.3】,在指令窗中运行,linspace,函数的示例。,2.1.1,数组的创建,2.1.1,数组的创建,4.,定数对数采样法(,logspace,函数),该法在设定“总点数”的前提下,经“常用对数”采样产生一维“行”数组

31、在系统频率分析中,常常用该指令产生频率响应的频率自变量采样点。该法的通用格式为:,x=logspace(a,b,n),其中,,n,是采样总点数;生成数组的第一个元素值为,10,a,;最后一个元素值为,10,b,。,【,例,2.4】,在指令窗中运行,logspace,函数的示例。,2.1.1,数组的创建,2.1.1,数组的创建,5.,中等规模数组的数组编辑器创建法,当数组规模较大,元素数据比较冗长且杂乱无章时,借助于数组编辑器(,Array Editor,)比较方便。,【,例,2.5】,根据现有数据创建一个,(38),的数组。,2.1.1,数组的创建,图,2.1,图,2.2,(,1,)单击图,

32、2.1,所示的,MATLAB,默认窗口上面菜单工具栏中的图标 ,在工作空间窗中引出一个名为,unnamed,变量的数组编辑器,如图,2.2,所示。,2.1.1,数组的创建,(,2,)在空白窗口中,按照“行、列”次序输入数据。最后一个数据,-9,输入结束后,按下,【Enter】,键,或在数组编辑器窗口内单击鼠标,使整个数组保存在,unnamed,变量中。,图,2.3,2.1.1,数组的创建,(,3,)在数组编辑器窗口中,右键点中,unnamed,变量,利用弹出的菜单的,Rename unnamed,选项,把变量名改成所需的名称,比如,ABC,(此时,在工作空间窗口中会出现该变量)。,【说明】,运

33、行上述指令后,在,MATLAB,的当前目录窗中可以找到一个名为,ABC_DAT.mat,的文件,其内容即为,ABC,变量。该指令中的第一个字符串为保存变量的文件名,第二个,字符串,为被保存的变量。如果以后要调用该变量,则在指令窗中键入,load ABC_DAT,。,save,指令和,load,指令在处理较大规模的数组和需要多次重复运行或者需要经过多步中间运算才能得到最终结果的数组时,有着极为重要的作用。,2.1.1,数组的创建,(,4,)假如该变量要供以后调用,则在指令窗中键入,save ABC_DAT ABC,2.1.1,数组的创建,6.,中等规模数组的,M,脚本文件创建法,对于今后经常需要

34、调用的数组,当数组规模较大而复杂时,为它专门建立一个,M,脚本文件是值得的。,【,例,2.6】,创建和保存数组,AM,的,MyMatrix.m,文件。,2.1.1,数组的创建,(,1,)单击,MATLAB,默认窗口上面的图标,,打开,M,文件,编辑调试器,(Editor/Debugger),,并在空白填写框中输入所需的数组。,图,2.4,2.1.1,数组的创建,(,2,)在空白填写框中输入所需数组,并在文件的首行,编写文件名和简短说明,以便查阅。,图,2.4,2.1.1,数组的创建,图,2.4,(,3,)点击,M,文件编辑调试器工具条上的,Save,图标 ,在弹出的,Windows,标准风格的

35、对话框内,选择保存文件夹,键入新编程序的文件名(如,MyMatrix,),点击,【,保存(,S,),】,键,就完成了文件的保存,并且文件起名为,MyMatrix.m,。,2.1.1,数组的创建,(,4,)以后只要在,MATLAB,指令窗中,键入,MyMatrix,,数组,AM,就会自动生成于,MATLAB,工作空间中。,实际应用中,往往需要产生一些特殊形式的数组。,MATLAB,考虑到这方面的需要,提供了许多生成特殊数组的函数。表,2.1,(,p.19,)列出了最常用的函数。,2.1.1,数组的创建,7.,利用,MATLAB,函数创建数组,【,例,2.7】,标准数组产生的示例。,运行结果分三张

36、图显示。,2.1.1,数组的创建,2.1.1,数组的创建,2.1.1,数组的创建,2.1,数值数组的创建、标识、,查询和定位,2.1.2,数组的标识,在,MATLAB,中,数组元素是按列存储的。数组中的元素可以采用全下标方式和单下标方式进行标识。,全下标方式就是在引述具体数组元素时,用行下标和列下标表示数组元素的位置。如果数组元素的下标行或列(,i,,,j,)大于数组的大小(,m,,,n,),,MATLAB,会提示出错。,2.1.2,数组的标识,单下标标识就是只用一个下标来指明元素在数组中的位置。为此,需要首先对数组的所有列按“先左后右”的次序、首尾相连接成“一维长列”。然后,自上而下对元素位

37、置进行编号。以(,m,n,)数组,A,为例,元素,A,(,i,,,j,),对应的单下标为 。,【,例,2.8】,数组全下标标识和单下标标识的应用示例。,2.1.2,数组的标识,利用操作桌面中的工作空间浏览器,或者利用,who,指令和,whos,指令,可以对数组的大小进行查询。另外,还可以采用,find,指令进行特殊要求的数组元素定位;也可以利用,length,指令和,size,指令分别,求取向量和矩阵维数。,2.1,数值数组的创建、标识、,查询和定位,2.1.3,数组的标识,【,例,2.9】,数组查询及定位的相关指令的应用示例。,2.1.3,数组的标识,【,说明,】,find,指令,执行的结果

38、表明,在,A,阵中,第,1,行的第,4,,,5,列元素和第,2,行的第,4,列元素满足条件要求。,为什么会如此显示结果?矩阵的存储方式决定的。,2.1.3,数组的标识,【,说明,】,不管数组的维数是多少,,size,指令,可以给出数组各维的大小。,length,指令通常用来求取一维数组(即向量)的长度,它可以给出数组所有维中的最大长度。这就是说,,length(A),等价于,max(size(A),。,MATLAB,中所有变量都被认为是数组变量,因此,MATLAB,的数值计算遵循数组运算的规则进行。如果在计算过程中发生数组维数不相容的情况,,MATLAB,将自动给出错误信息提示。此外,,MAT

39、LAB,还提供了独特的点“,.”,运算,因而使用起来更加方便。,2.2,数组的运算和操作,第,2,章 数值数组及其运算,2.2,数组的运算和操作,2.2.1,数组的代数运算,1.,数组与标量的运算,数组与标量的运算包括、,、,和乘方等运算,其中、,和,的运算完成数组中的每个元素对标量的运算。,【,例,2.10】,数组与标量运算的示例。,2.2.1,数组的代数运算,2.2.1,数组的代数运算,MATLAB,用符号“,”,表示乘方。求数组乘方时要求数组为方阵,(,参见数组的乘法运算)。,【,例,2.11】,矩阵乘方运算的示例。,【,说明,】,B2,完成,B,B,运算。,B(-1),实际上是求,B,

40、的逆矩阵。,B(0.2),实际上是求矩阵,P,使,P,5,B,。,2.2.1,数组的代数运算,如果要完成数组中每个元素的乘方运算,则需要用到点运算(后面介绍)。,2.,数组的转置运算,数组,A,的转置用,A,表示。对于实数数组,即为转置运算;对于复数数组,则为共轭转置运算(即,Hermit,转置运算)。另外,用,A.,表示,A,的非共轭转置运算。,2.2.1,数组的代数运算,【,例,2.12】,矩阵转置运算的示例。,2.2.1,数组的代数运算,实数数组的共轭和非共轭运算结果相同。,2.2.1,数组的代数运算,复数数组的共轭和非共轭运算结果不同。,数组,A,和,B,的尺寸完全相同时(即皆为(,m

41、n,)数组,),,可以进行加减法运算;如果,A,和,B,的尺寸不相等,,MATLAB,将自动给出错误信息,提示两个数组的尺寸不相等。,【,例,2.13】,数组加减法运算的示例。,2.2.1,数组的代数运算,3.,数组加减法运算,2.2.1,数组的代数运算,A,和,B,的尺寸不相吻合,系统提示出错。,B,和,C,的尺寸相吻合,完成对应位置的元素的算术运算。,4.,数组的乘法运算,2.2.1,数组的代数运算,两个二维数组,A,和,B,的维数相容时(,A,的列数等于,B,的行数),可以进行,C,=,A,B,的运算。,【,例,2.14】,对,【,例,2.13】,中的,A,和,B,数组进行乘法运算。,

42、2.2.1,数组的代数运算,2.2.1,数组的代数运算,5.,数组的除法运算,数组除法是,MATLAB,专门为二维数组(即矩阵)设计的一种运算。矩阵的除法运算包括左除“,”,和右除“,/”,两种运算。其中,,左除:,AB=A,-1,B,,,A,为方阵(即求方程,Ax,=,B,的解);,右除:,A/B=AB,-1,,,B,为方阵(即求方程,xA,=,B,的解)。,【,例,2.15】,矩阵除法运算的示例。,如果改成,A/B,,会出现什么结果?,2.2.1,数组的代数运算,6.,数组的点运算,MATLAB,中定义了一种特殊的运算,即所谓的点运算。两个数组之间的点运算是它们之间对应元素的直接运算。显然

43、这两个数组的尺寸应该完全相同(即皆为(,m,n,)数组)。另外,数组与标量的运算也可以看成是标量常数对数组的点运算。,2.2.1,数组的代数运算,【,例,2.16】,数组的点运算示例。,要点:“,.”,后必须立即紧跟运算符才表示点运算。,2.2.1,数组的代数运算,【,说明,】,C=A*B,是普通矩阵乘积 运算。,CC=a,ij,*b,ij,;,AA=a,ij,2,。,7.,数组的求幂运算,2.2.1,数组的代数运算,数组求幂运算包括数组与常数和数组与数组的幂运算,用点运算的形式表示。,【,例,2.17】,矩阵求幂运算的示例。,2.2.1,数组的代数运算,【,说明,】,A1=,a,ij,3,

44、A2=,3,a,ij,。,A2=3.A,中,第一个“,.”,表示小数点(底数为,3.0,),第二个“,.”,和“,”,配合表示,A,数组求幂的点运算。,A3=,a,ij,b,ij,。,2.2,数组的运算和操作,2.2.2,数组的块操作,MATLAB,提供了很多简便、智能的方式,可以对数组进行元素更改、插入子块、提取子块、重排子块、扩充数组等操作。这里,最重要的是冒号“,:”,的应用。在,MATLAB,中,冒号表示全部。,【,例,2.18】,数组块操作的示例。,2.2.2,数组的块操作,2.2.2,数组的块操作,在,MATLAB,中,不需要定义数组即可使用,而且将一个已存在数组的尺寸进行扩展

45、甚为容易。,能否将一个已存在数组的尺寸缩小?后面介绍。,2.2,数组的运算和操作,2.2.3,数组的翻转操作,MATLAB,提供了几种指令(函数),可以进行数组的翻转操作。,【,例,2.19】,数组翻转操作的示例。,2.2.3,数组的翻转操作,2.2.3,数组的翻转操作,2.2,数组的运算和操作,2.2.4,数组运算的常用数学函数,对于(,m,n,)数组,数学函数 的运算规则为,2.2.4,数组运算的常用数学函数,数组运算的常用数学函数如表,2.2,(,p.26,)所示。,注意:,表,2.2,中的数组函数的运算都是点运算。三角函数及其相关函数的输入宗量的单位都是弧度。,【,例,2.20】,数组

46、数学函数运算的示例。,2.2.4,数组运算的常用数学函数,【,说明,】,C=exp(A),完成的是,C=exp(,a,ij,),运算,;,D=abs(B),完成的是,D=abs(,b,ij,),运算,不要求,B,阵为方阵。,这是,MATLAB,中特有的三个概念和“预定义变量”。,2.3,“无穷大”、“非数”和“空”数组,第,2,章 数值数组及其运算,2.3,“无穷大”、“非数”和“空”数组,2.3.1,“无穷大”,“无穷大”表示“,infinite”,,是由一个非零数除以,0,得到的或者是在计算中出现的数值上溢产生的,在,MATLAB,中用,Inf,或,inf,记叙。,MATLAB,允许除数为

47、0,,并给出“,Inf,”,作为本步计算结果,同时继续下面程序的运行。,【,例,2.21】,产生,Inf,的计算示例。,2.3.1,“无穷大”,2.3,“无穷大”、“非数”和“空”数组,2.3.2,“非数”,“非数”表示“,Not-a-Number”,,在,MATLAB,中用,NaN,或,nan,记叙。按照,IEEE,的规定,等运算都会产生,NaN,。,根据,IEEE,的数学规范,,NaN,具有以下性质:,对,NaN,的所有运算结果都为,NaN,,即,NaN,具有传递性;,NaN,没有“大小”的概念,因此不能比较两个,NaN,的大小。,2.3.2,“非数”,NaN,的功效:,真实记述 等运算

48、的后果;,避免因 等运算而造成程序执行的中断;,在测量数据处理中,可以用来标识“野点(非正常点)”;,在数据可视化中,用来裁剪图形。,【,例,2.22】,NaN,的产生和性质演示。,2.3.2,“非数”,2.3.2,“非数”,2.3.2,“非数”,【,说明,】,关于关系运算见,5.3.1,节。,2.3,“无穷大”、“非数”和“空”数组,2.3.3,“空”数组,“空”数组用符号,表示,它不是元素取值为,0,的数组,而是一个行数或列数为,0,或者行列数均为,0,的数组。换句话说,,是一个标志,表示逻辑上的“无”或“不存在”。,的功效:,在没有,参与运算时,计算结果中的“,”,可以合理地解释 “所得

49、结果的含义”;,运用,对其他非空数组赋值,可以使数组的尺寸变小,但不改变那数组的维数。,2.3.3,“空”数组,【,例,2.23】,的产生、查询及应用。,【,说明,】,因为数组,x,中的所有元素都小于,7,,,y=find(x7),执行的结果是没有找到大于,7,的值,所以返回一个,10,的“空”数组。,指令,size(),执行的结果说明(,00,)的“空”数组是存在的。,2.3.3,“空”数组,用于子数组的删除和大数组的收缩。,指令,clear A,和,A(:)=,的,执行结果有何不同?,MATLAB,程序设计及应用,第,3,章 字符串、元胞和结构数组,3.1,字符串数组,MATLAB,可以给

50、一串文字进行定义并执行一些字符串的处理与运算。与数值计算相比,字符串运算在,MATLAB,中的重要性较小,并且提供的函数和操作也较少。但是,如果没有字符串以及相应的操作,数据的可视化操作将发生困难。,第,3,章 字符串、元胞和结构数组,字符串与数值是两种不同的数据类(,Class,),因此它们的创建方式也就不同。,数值数组通常是在,MATLAB,指令窗中采用数字赋值方式直接创建的。字符串数组(,Character String Array,)的创建方式是:在,MATLAB,指令窗中,先把待创建的字符串放在单引号对“,”,中,再按下,【Enter】,键。,注意:,单引号对必须在英文状态下输入。,

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服