1、MATLAB程序设计及应用程序设计及应用(第(第2 2版)版)第第1章章 MATLAB入门与基本操作入门与基本操作1.1 MATLAB的发展沿革的发展沿革 MATLAB是美国是美国New Mexico大学的数学和计算机教授大学的数学和计算机教授Cleve Moler在在20世纪世纪70年代中后期讲授线性代数课程时年代中后期讲授线性代数课程时首创的,全名为首创的,全名为MATrix LABoratory(矩阵实验室)。(矩阵实验室)。特点:特点:用用Fortran语言编写的,只能做矩阵运算;语言编写的,只能做矩阵运算;绘图用星号描点的形式画图;绘图用星号描点的形式画图;提供了几十个内部函数。提供
2、了几十个内部函数。第1章 MATLAB入门与基本操作入门与基本操作 1984年,年,Cleve Moler等一批数学家和软件专家成立了等一批数学家和软件专家成立了MathWorks软件开发公司,对软件开发公司,对MATLAB进行了大规模的进行了大规模的扩展和改进,并与同年推出了第一个扩展和改进,并与同年推出了第一个MATLAB的商用版的商用版本。本。特点:特点:采用采用C语言进行改写;语言进行改写;具有较多的内部函数。具有较多的内部函数。1.1 MATLAB的发展沿革的发展沿革 1 9 9 3 年 推 出 了年 推 出 了 M AT L A B 4.0 版,同 年 又 推 出 了版,同 年 又
3、 推 出 了MATLAB4.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位运算,数值计算更快;位运算,数值计算更快;图形表
4、现更丰富有效,编程更简洁直观;图形表现更丰富有效,编程更简洁直观;用户界面十分友好。用户界面十分友好。1.1 MATLAB的发展沿革的发展沿革 2000年推出了年推出了MATLAB6.0版(版(Release 12)。)。特点:特点:在核心数值算法、界面设计、外部接口、应用桌在核心数值算法、界面设计、外部接口、应用桌 面等方面有了极大的改进。面等方面有了极大的改进。1.1 MATLAB的发展沿革的发展沿革 2004年推出了年推出了MATLAB7.0版(版(Release 14)。)。特点:特点:集成了集成了MATLAB7.0编译器、编译器、Simulink6.0图形仿真图形仿真器及许多工具箱,
5、在编程环境、代码效率、数据可器及许多工具箱,在编程环境、代码效率、数据可视化、文件视化、文件I/O等方面都进行了全面的升级。等方面都进行了全面的升级。1.1 MATLAB的发展沿革的发展沿革 从从2006年开始年开始,MathWorks公司在产品的发表模式发生公司在产品的发表模式发生了变化。每年的了变化。每年的3月和月和9月进行两次产品发布,版本的命名月进行两次产品发布,版本的命名方式为方式为“R+年份年份+代码代码”,对应于上下半年的代码分别是,对应于上下半年的代码分别是a和和b。MATLAB R2013b(即(即MATLAB8.2版)是版)是2013年年9月推月推出的产品。出的产品。最近一
6、次版本更新是最近一次版本更新是2015年年9月推出的月推出的MATLAB R2015b,对许多工具箱作了相应的升级,使得对许多工具箱作了相应的升级,使得MATLAB的功能更的功能更强,应用更简便。强,应用更简便。1.1 MATLAB的发展沿革的发展沿革1.2 MATLAB的特点及应用领域的特点及应用领域优点:优点:(1)以复数数组(包括矩阵)作为基本编程单元,每个)以复数数组(包括矩阵)作为基本编程单元,每个变量代表一个数组,其中的每个元素都可以是复数。数组变量代表一个数组,其中的每个元素都可以是复数。数组的维数不需要预先定义即可采用,还可以随时改变数组的的维数不需要预先定义即可采用,还可以随
7、时改变数组的尺寸尺寸。(2)易学易用,函数名和表达式更接近书写计算公式的)易学易用,函数名和表达式更接近书写计算公式的思维表达方式。使用思维表达方式。使用MATLAB编程犹如在草稿纸上排列编程犹如在草稿纸上排列公式和求解问题。公式和求解问题。第第1章章 MATLAB入门与基本操作入门与基本操作1.2 MATLAB的特点及应用领域的特点及应用领域(3)是一种面向科学和工程计算的高级语言。它以数组)是一种面向科学和工程计算的高级语言。它以数组运算为基础,极少的代码就可以实现复杂的功能。运算为基础,极少的代码就可以实现复杂的功能。(4)具有强大而智能化的图形功能。)具有强大而智能化的图形功能。(5)
8、提供了许多面向应用问题求解的工具箱函数,从而)提供了许多面向应用问题求解的工具箱函数,从而大大方便科研人员的使用。大大方便科研人员的使用。(6)开放性好,易于扩充。)开放性好,易于扩充。(7)与与C语言和语言和Fortran语言有良好的接口,可以实现混语言有良好的接口,可以实现混合编程。合编程。1.2 MATLAB的特点及应用领域的特点及应用领域缺点:缺点:(1)运行效率较低,执行相同功能的代码运行时间较长。)运行效率较低,执行相同功能的代码运行时间较长。(2)用户编制的程序文件为文本文件,可以用文本编辑)用户编制的程序文件为文本文件,可以用文本编辑器直接打开,不利于保密。器直接打开,不利于保
9、密。(3)访问硬件的能力相对较差,图形用户界面功能不够)访问硬件的能力相对较差,图形用户界面功能不够灵活。灵活。1.2 MATLAB的特点及应用领域的特点及应用领域应用领域:应用领域:数据分析;数据分析;数值与符号计算;数值与符号计算;工程与科学绘图;工程与科学绘图;控制系统设计;控制系统设计;电路分析计算;电路分析计算;通信系统设计与仿真;通信系统设计与仿真;航天工业;航天工业;汽车工业;汽车工业;生物医学工业;生物医学工业;语音处理;语音处理;图像与数字信号处理;图像与数字信号处理;财务、金融分析;财务、金融分析;建模、仿真与样机开发;建模、仿真与样机开发;新算法研究开发。新算法研究开发。
10、1.3 MATLAB的安装启动的安装启动 与操作桌面简介与操作桌面简介 1.3.1 MATLAB的安装和启动的安装和启动第第1章章 MATLAB入门与基本操作入门与基本操作 MATLAB 可以在可以在Windows环境下直接安装。在环境下直接安装。在MATLAB安装完成后,会在安装完成后,会在Windows桌面上自动生成桌面上自动生成MATLAB的快捷方式图标的快捷方式图标 。1.3.1 MATLAB的安装和启动的安装和启动双击图标双击图标 ,就打开了如图,就打开了如图1.1所示的所示的MATLAB默认窗口默认窗口(Desktop)。)。图图1.11.3 MATLAB的安装启动的安装启动 与默
11、认窗口简介与默认窗口简介 1.3.2 MATLAB默认窗口简介默认窗口简介 图图1.1所示的所示的MATLAB默认窗口分为默认窗口分为5个区域:指令窗、个区域:指令窗、当前目录窗、历史指令窗、工作空间当前目录窗、历史指令窗、工作空间窗窗和和Details窗。窗。另外,在另外,在MATLAB默认窗口的上方,还嵌入了菜单栏和默认窗口的上方,还嵌入了菜单栏和工具栏,如图工具栏,如图1.1所示。它们的使用及选择方式与所示。它们的使用及选择方式与Windows环境中的相同。环境中的相同。1.3.2 MATLAB默认窗口简介默认窗口简介 指令窗(指令窗(Command Window)该窗口是进行各种该窗口
12、是进行各种MATLAB操作的最主要窗口。它位于操作的最主要窗口。它位于MATLAB默认窗口的正中间。默认窗口的正中间。用户可以在该窗口中提示符用户可以在该窗口中提示符“fx”后直接键入指令,按后直接键入指令,按“Enter”键后,即可运行并显键后,即可运行并显示除窗口外的所有运行结果。当指令窗口提示符为示除窗口外的所有运行结果。当指令窗口提示符为“fx”时,表示系统已经准备好,用户可以输入指令、函数、表时,表示系统已经准备好,用户可以输入指令、函数、表达式,按达式,按“Enter”键后便可执行。键后便可执行。当前目录窗(当前目录窗(Current Directory Browser)该窗口位于
13、该窗口位于MATLAB默认窗口的左上方。它默认窗口的左上方。它显示了当前显示了当前目录下所有文件的文件名、文件类型、最后修改时间和文目录下所有文件的文件名、文件类型、最后修改时间和文件相关描述等信息。件相关描述等信息。1.3.2 MATLAB默认窗口默认窗口简介简介 历史指令窗(历史指令窗(Command History)该窗口位于该窗口位于MATLAB默认窗口的右下方。它自动记录自默认窗口的右下方。它自动记录自MATLAB安装起所有已经运行过的指令、函数、表达式,安装起所有已经运行过的指令、函数、表达式,以及它们的运行日期和时间。该窗口中的所有指令、文字以及它们的运行日期和时间。该窗口中的所
14、有指令、文字都允许复制、重新运行及用于产生都允许复制、重新运行及用于产生M文件。文件。工作空间窗(工作空间窗(Workspace Browser)该窗口位于该窗口位于MATLAB默认窗口的右上方默认窗口的右上方。它列出了。它列出了MATLAB工作空间中所有的变量名、大小、字节数和变量工作空间中所有的变量名、大小、字节数和变量类型说明。在该窗口中,可以对变量进行观察、编辑、提类型说明。在该窗口中,可以对变量进行观察、编辑、提取、保存和删除等操作。取、保存和删除等操作。1.3.2 MATLAB默认窗口默认窗口简介简介 Details窗窗 该窗口位于该窗口位于MATLAB默认窗口的右下方,用于显示文
15、件默认窗口的右下方,用于显示文件的细节。的细节。在在MATLAB默认窗口默认窗口上方,还嵌入了菜单栏和工具栏,上方,还嵌入了菜单栏和工具栏,它们的使用及选择方式与它们的使用及选择方式与Windows环境中的相同。环境中的相同。1.3 MATLAB的安装启动的安装启动 与默认窗口简介与默认窗口简介 1.3.3 MATLAB R2013b界面菜单工具栏界面菜单工具栏 MATLAB R2013b的界面相比较与其旧版本有了很大的差的界面相比较与其旧版本有了很大的差别,菜单和工具合为一体,即菜单工具。在别,菜单和工具合为一体,即菜单工具。在MATLAB启动启动后,在默认窗口(见图后,在默认窗口(见图1.
16、1)的上方,用户可以看到如图)的上方,用户可以看到如图1.2所示的菜单工具栏。顶层菜单有所示的菜单工具栏。顶层菜单有HOME(基本菜单和工(基本菜单和工具)、具)、PLOTS(绘图工具)和(绘图工具)和APPS(应用程序)共(应用程序)共3项。项。图图1.21.4 MATLAB指令窗操作入门指令窗操作入门 1.4.1 MATLAB指令窗简介指令窗简介 第第1章 MATLAB入门与基本操作入门与基本操作 MATLAB指令窗位于指令窗位于MATLAB默认窗口的正中间,如图默认窗口的正中间,如图1.1所示。如果用户希望得到脱离默认窗口的几何独立的指所示。如果用户希望得到脱离默认窗口的几何独立的指令窗
17、,只要单击图令窗,只要单击图1.2中的图标中的图标 ,并在下拉菜单中选择,并在下拉菜单中选择 就可以获得如图就可以获得如图1.3所示的指令窗。所示的指令窗。1.4.1 MATLAB指令窗简介指令窗简介 图图1.3 如果希望让几何独立的指令窗嵌入回如果希望让几何独立的指令窗嵌入回MATLAB默认窗默认窗口中,则只要单击下拉菜单中的图标口中,则只要单击下拉菜单中的图标 即可。即可。1.4 MATLAB指令窗操作入门指令窗操作入门 1.4.2 最简单的计算器使用方法最简单的计算器使用方法【例例1.1】求求55+5(7.5-0.5)23的运算结果。的运算结果。图图1.31.4.2 最简单的计算器使用方
18、法最简单的计算器使用方法【说明说明】MATLAB指令是带有提示符指令是带有提示符“”的,从而可以区分是的,从而可以区分是指令还是指令还是MATLAB给出的结果。给出的结果。MATLAB的运算符(如、等)都是各种计算程序的运算符(如、等)都是各种计算程序中常见的习惯符号。中常见的习惯符号。在键入一条指令后,必须按下在键入一条指令后,必须按下“Enter”键,该条指令才键,该条指令才会被执行。会被执行。计算结果显示中的计算结果显示中的“ans”是英文是英文“answer”的缩写,其的缩写,其含义是含义是“运算答案运算答案”。这是。这是MATLAB中的一个预定义的默中的一个预定义的默认变量。认变量。
19、1.4.2 最简单的计算器使用方法最简单的计算器使用方法【例例1.2】简单数组简单数组 的输入。的输入。654321A1.4.2 最简单的计算器使用方法最简单的计算器使用方法【说明说明】直接输入数组时,数组元素之间用空格或逗号分隔,数直接输入数组时,数组元素之间用空格或逗号分隔,数组行之间用分号分隔,整个数组放在方括号对组行之间用分号分隔,整个数组放在方括号对“”里。注里。注意:意:标点符号必须在英文状态下输入!标点符号必须在英文状态下输入!在在MATLAB中,不必事先对数组的维数进行任何说明,中,不必事先对数组的维数进行任何说明,存储将自动配置。存储将自动配置。指令执行后,数组指令执行后,数
20、组A被保存在被保存在MATLAB的工作空间中。的工作空间中。如果用户不对它进行重新赋值,或用如果用户不对它进行重新赋值,或用clearclear指令清除它,该指令清除它,该数组将会一直保存在工作空间中,直到本次数组将会一直保存在工作空间中,直到本次MATLAB指令指令窗被关闭为止。窗被关闭为止。MATLAB对字母的大小写是敏感的。在本例中,数组赋对字母的大小写是敏感的。在本例中,数组赋给了变量给了变量A,而不是小写的,而不是小写的a。1.4.2 最简单的计算器使用方法最简单的计算器使用方法 按按照照MATLAB的变量定义规则,将所有变量都定义为的变量定义规则,将所有变量都定义为数组。标量被看作
21、(数组。标量被看作(11)的数组,向量认为是()的数组,向量认为是(1n)或(或(m1)的数组)的数组,矩阵认为是(矩阵认为是(mn)的数组。)的数组。1.4.2 最简单的计算器使用方法最简单的计算器使用方法【例例1.3】数组的分行输入数组的分行输入【说明说明】在这种输入在这种输入法中法中,“Enter”键用来分隔数组键用来分隔数组中的行。中的行。1.4.2 最简单的计算器使用方法最简单的计算器使用方法【例例1.4】指令的续行输入指令的续行输入【说明说明】MATLAB用用3个或个或3个以上个以上的连续黑点表示的连续黑点表示“续行续行”,即下,即下一行是上一行的一行是上一行的继续。继续。1.4
22、MATLAB指令窗操作入门指令窗操作入门 1.4.3 数值、变量和表达式数值、变量和表达式1.数值的记述数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法或负号。以下记述都合法 4 100 0.0001 6.789 8.7e6 1.8e56 在采用在采用IEEE浮点算法的计算机上,数值通常采用浮点算法的计算机上,数值通常采用“占用占用64位内存的双精度位内存的双精度”表示。其相对精度是表示。其相对精度是 eps(MATLAB的一个预定义变量),大约保持有效数字的一个预定义变量),大约保持有效数字 16位。数值范围位。数
23、值范围大致从大致从10-308 到到10308。除了一般实数数据之外,除了一般实数数据之外,MATLAB还支持复数数组和字还支持复数数组和字符串型数组。符串型数组。1.4.3 数值、变量和表达式数值、变量和表达式2.变量命名规则变量命名规则 MATLAB 中变量名应该由一个英文字母打头,后面可以中变量名应该由一个英文字母打头,后面可以跟字母、数字、下划线等,变量名最多不超过跟字母、数字、下划线等,变量名最多不超过63个字符。个字符。MATLAB中变量名是区分大小的。中变量名是区分大小的。有些变量名不能用有些变量名不能用。例如,。例如,sin(它是(它是MATLAB中定义的中定义的正弦函数名正弦
24、函数名)。但)。但SIN和和Sin可以用。可以用。1.4.3 数值、变量和表达式数值、变量和表达式3.预定义变量预定义变量 MATLAB中有一些所谓的中有一些所谓的“预定义变量预定义变量”(Predefined Variable),如表),如表1.1(p.8)所示。每当)所示。每当MATLAB启动时,启动时,这些变量就自动产生并取表中的预定义值。这些变量都有这些变量就自动产生并取表中的预定义值。这些变量都有特殊的含义和用途。如果用户对表中任何一个预定义变量特殊的含义和用途。如果用户对表中任何一个预定义变量进行赋值,则那个变量的默认值将被用户新赋的值进行赋值,则那个变量的默认值将被用户新赋的值“
25、临时临时”覆盖,原始的特殊取值将会丢失。覆盖,原始的特殊取值将会丢失。习惯于其他程序设计语言编程的读者最有可能将习惯于其他程序设计语言编程的读者最有可能将预定义预定义变量变量“i”和和“j”作为循环变量使用,而破坏其默认值。作为循环变量使用,而破坏其默认值。建议:建议:在编写指令和程序时,尽量不对表在编写指令和程序时,尽量不对表1.1中所列预定中所列预定义变量重新赋值,以免产生混淆。义变量重新赋值,以免产生混淆。1.4.3 数值、变量和表达式数值、变量和表达式4.运算符和运算符和表达式表达式 MATLAB中的算术运算符和其他程序设计语言的表现形中的算术运算符和其他程序设计语言的表现形式相同。但
26、由于式相同。但由于MATLAB是面向矩阵是面向矩阵/数组运算设计的,数组运算设计的,标量被看作(标量被看作(1 1)的矩阵)的矩阵/数组,数组,“乘、除和幂乘、除和幂”运算运算的规则与一般矩阵运算有所不同。除法运算包括了的规则与一般矩阵运算有所不同。除法运算包括了“左除左除”和和“右除右除”两种运算。具体说明详见第两种运算。具体说明详见第2章。章。1.4.3 数值、变量和表达式数值、变量和表达式 MATALAB书写表达式的规则与书写表达式的规则与“手写算式手写算式”几乎完全几乎完全相同,也与其他程序设计语言没有多少差别。相同,也与其他程序设计语言没有多少差别。表达式由变量名、运算符和函数名组成
27、。表达式由变量名、运算符和函数名组成。表达式按常规的优先级从左到右执行运算。表达式按常规的优先级从左到右执行运算。优先级的基本规定是:指数运算级别最高,乘除运算其优先级的基本规定是:指数运算级别最高,乘除运算其 次,加减运算级别最低。次,加减运算级别最低。括号可以改变运算的次序。括号可以改变运算的次序。书写表达式时,赋值符书写表达式时,赋值符“=”和运算符两侧允许有空格,和运算符两侧允许有空格,以增加可读性。以增加可读性。1.4 MATLAB指令窗操作入门指令窗操作入门 1.4.4 工作空间与变量管理工作空间与变量管理 对于如图对于如图1.1所示的默认窗口,直接点击工作空间窗中的所示的默认窗口
28、,直接点击工作空间窗中的变量名就可以进行相应的操作。变量名就可以进行相应的操作。1.4.4 工作空间与变量管理工作空间与变量管理 右击右击【例例1.2】结果图中结果图中A的图标,的图标,可以根据可以根据下拉菜单下拉菜单进行相应进行相应操作。操作。1.4.4 工作空间与变量管理工作空间与变量管理 还可以双击还可以双击A的图标,在弹出的窗口中对的图标,在弹出的窗口中对A的内容进行修改,的内容进行修改,也可以改变也可以改变A的尺寸。的尺寸。对于如图对于如图1.3所示的几何独立的指令窗,则可以通过三个所示的几何独立的指令窗,则可以通过三个常用指令:常用指令:who,whos和和clear进行。进行。在
29、指令窗中运行在指令窗中运行who指令和指令和whos指令,可以获得有关工指令,可以获得有关工作空间中变量的相关信息;而运行作空间中变量的相关信息;而运行clear指令则可以删除一指令则可以删除一些不再使用的变量,使整个工作空间更简洁。些不再使用的变量,使整个工作空间更简洁。1.4.4 工作空间与变量管理工作空间与变量管理【例例1.5】在指令窗中运行指令在指令窗中运行指令who,whos和和clear的示例。的示例。1.4.4 工作空间与变量管理工作空间与变量管理【说明说明】可以把多条指令放在同一行上输入,中间用逗号或分号可以把多条指令放在同一行上输入,中间用逗号或分号分隔。如果采用了分号,则不
30、显示该条指令的运行结果。分隔。如果采用了分号,则不显示该条指令的运行结果。1.4.4 工作空间与变量管理工作空间与变量管理 whos指令将列出全部变量的变量名(指令将列出全部变量的变量名(Name)、大小)、大小(Size)、字节数()、字节数(Bytes)、变量类型()、变量类型(Class)。除了列出了)。除了列出了各个变量的相关信息外,还给出了整个工作空间的占用情况。各个变量的相关信息外,还给出了整个工作空间的占用情况。MATLAB将所有的变量都作为数组来看待。将所有的变量都作为数组来看待。1.4.4 工作空间与变量管理工作空间与变量管理 clear指令中,指令中,X1 和和Y1之间不能
31、加逗号或分号,只能用空之间不能加逗号或分号,只能用空格分隔;否则该指令就会被错误地解释成删除格分隔;否则该指令就会被错误地解释成删除X1变量,然后变量,然后运行下一条指令(其内容为运行下一条指令(其内容为Y1),而下一条指令将被解释成),而下一条指令将被解释成将将Y1变量的内容显示出来,这样变量的内容显示出来,这样Y1变量就不会被删除。变量就不会被删除。1.4.4 工作空间与变量管理工作空间与变量管理 应当特别注意:应当特别注意:单独键入单独键入clear指令指令,将无条件删除,将无条件删除MATLAB工作空间中的全部变量!系统不会要求用户确工作空间中的全部变量!系统不会要求用户确认该指令,所
32、有变量都被清除,并且不能恢复!认该指令,所有变量都被清除,并且不能恢复!1.4 MATLAB指令窗操作入门指令窗操作入门 1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号 1.默认的输入显示方式默认的输入显示方式 从从MATLAB7.0版本开始起规定:输入指令中的版本开始起规定:输入指令中的if,for,end等控制数据流的等控制数据流的MATLAB关键词自动地采用蓝色字体显关键词自动地采用蓝色字体显示;输入指令中的非控制指令、数码,都自动地采用黑色示;输入指令中的非控制指令、数码,都自动地采用黑色字体显示;输入的字符串自动地采用紫色字体显示。字体
33、显示;输入的字符串自动地采用紫色字体显示。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号 2.运算结果的显示运算结果的显示 在指令窗中显示的输出有:指令执行后,数值结果采用黑在指令窗中显示的输出有:指令执行后,数值结果采用黑色字体输出;而运行过程中的出错信息用红色字体显示。色字体输出;而运行过程中的出错信息用红色字体显示。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号 系统用系统用红色的字红色的字体告知矩体告知矩阵的维数阵的维数不一致。不一致。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方
34、式与指令行的编辑 及标点符号及标点符号 结果的输出一般默认采用结果的输出一般默认采用“format short g”格式,显示出格式,显示出5位有效数字。不要误认为,运算结果的精度只有位有效数字。不要误认为,运算结果的精度只有5位有效位有效数字。数字。MATLAB的数值数据通常占用的数值数据通常占用64位(位(Bit)内存,)内存,以以16位有效数字的位有效数字的“双精度双精度”进行运算和输出。进行运算和输出。可以根据可以根据需要,在指令窗中直接输入相应的指令,获得所需的数值需要,在指令窗中直接输入相应的指令,获得所需的数值计算结果显示格式。表计算结果显示格式。表1.2(p.10)给出了这些常
35、用的数给出了这些常用的数字显示格式。字显示格式。【例例1.6】在指令窗中运行在指令窗中运行format指令的示例。指令的示例。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号【说明说明】在选择不同的数字显在选择不同的数字显示格式时,示格式时,MATLAB并并不改变数字的大小,只不改变数字的大小,只改变显示格式。改变显示格式。一旦键入了上述某条一旦键入了上述某条format指令后,工作空间指令后,工作空间中的所有数据均采用同中的所有数据均采用同一格式显示。并且,在一格式显示。并且,在下一次键入下一次键入format指令前,指令前,所有数据均按照本次所
36、有数据均按照本次format指令指令规定的格式显规定的格式显示。示。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号 3.指令窗中指令行的编辑指令窗中指令行的编辑 由于由于MATLAB把指令窗中输入的所有指令都记录在内存把指令窗中输入的所有指令都记录在内存中专门的中专门的“历史指令历史指令”(Command History)空间中,因)空间中,因此此MATLAB的指令窗不仅可以对输入执行过的指令进行编的指令窗不仅可以对输入执行过的指令进行编辑和运行,而且可以对已输入的指令进行回调、编辑和重辑和运行,而且可以对已输入的指令进行回调、编辑和重新运行。常
37、用的操作键如表新运行。常用的操作键如表1.3(p.11)所示。)所示。1.4.5 指令窗的显示方式与指令行的编辑指令窗的显示方式与指令行的编辑 及标点符号及标点符号 4.指令窗中的标点符号指令窗中的标点符号 MATLAB中的标点符号的作用如表中的标点符号的作用如表1.4(p.12)所示。)所示。需要特别提醒的是:需要特别提醒的是:在向指令窗中输入指令时,一定要在在向指令窗中输入指令时,一定要在英文状态下输入英文状态下输入。1.4 MATLAB指令窗操作入门指令窗操作入门 1.4.6 在线帮助在线帮助 为了帮助用户在繁多的为了帮助用户在繁多的MATLAB指令中找到所需的指令并指令中找到所需的指令
38、并且了解指令的使用方式,且了解指令的使用方式,MATLAB提供了广泛的在线帮助提供了广泛的在线帮助功能。最常用的功能是:功能。最常用的功能是:help指令和指令和lookfor指令。指令。1.help指令指令 在指令窗中运行在指令窗中运行help指令可以获得不同程度的帮助。指令可以获得不同程度的帮助。【例例1.7】在指令窗中运行在指令窗中运行help指令的示例。指令的示例。1.4.6 在线帮助在线帮助(1)运行)运行help引出主题(引出主题(Topics)分类列表)分类列表 1.4.6 在线帮助在线帮助(2)运行)运行help topic引出具体主题下的函数名(引出具体主题下的函数名(Fun
39、Name)列表)列表 1.4.6 在线帮助在线帮助(3)运行)运行help FunName获得具体函数的用法说明获得具体函数的用法说明 1.4.6 在线帮助在线帮助(4)运行)运行help help获得如何使用获得如何使用help的信息的信息 1.4.6 在线帮助在线帮助2.lookfor指令指令 lookfor指令根据关键词提供帮助。指令根据关键词提供帮助。【例例1.8】寻找所有求解寻找所有求解riccati方程的指令和解释语句。方程的指令和解释语句。1.4.6 在线帮助在线帮助第第2章章 数值数组及其运算数值数组及其运算 MATLAB程序设计及应用程序设计及应用(第(第2 2版)版)2.1
40、 数值数组的创建、标识、数值数组的创建、标识、查询和定位查询和定位 出于数值运算离散本质的考虑,也出于出于数值运算离散本质的考虑,也出于“向量化向量化”快速快速处理数据的需要,处理数据的需要,MATLAB总把数值数组看作是存储和总把数值数组看作是存储和运算的基本单元,标量数据被看成是运算的基本单元,标量数据被看成是(11)的数组,而矩的数组,而矩阵则是阵则是(mn)的数组。的数组。第第2章章 数值数组及其运算数值数组及其运算 这是最简单,也是最通用的创建方法。这是最简单,也是最通用的创建方法。【例例1.1】【例例1.4】就是采用这种方法创建的。复数矩阵(即二维复数就是采用这种方法创建的。复数矩
41、阵(即二维复数数组)的输入也很简单。数组)的输入也很简单。2.1 数值数组的创建、标识、数值数组的创建、标识、查询和定位查询和定位 2.1.1 数组的创建数组的创建1.逐个元素输入法逐个元素输入法 2.1.1 数组的创建数组的创建【例例2.1】产生复数数组产生复数数组 i 19i 28i 37i 46i 55i 64i 73i 82i 91B 注意:注意:虚虚数部分的数部分的几种输入几种输入表示方法,表示方法,其中其中i和和j的意义相的意义相同。同。2.1.1 数组的创建数组的创建 若将指令中若将指令中“j*5”改成改成“j5”,系统,系统会提示出错,会提示出错,因为因为j5 是一是一个未被定
42、义个未被定义或赋值的变或赋值的变量。量。2.1.1 数组的创建数组的创建 B数组创建后,数组创建后,可以用可以用real,imag,abs,angle函数来求出函数来求出其对应的实部数其对应的实部数组、虚部数组、组、虚部数组、幅值数组和相角幅值数组和相角数组(参见数组(参见p.26表表2.2)。左图给)。左图给出了求取对应的出了求取对应的虚部数组的函数虚部数组的函数指令和结果。指令和结果。2.1.1 数组的创建数组的创建2.冒号冒号“:”生成法生成法 MATLAB定义了独特的冒号表达式来给一维定义了独特的冒号表达式来给一维“行行”数组数组赋值,其通用格式为:赋值,其通用格式为:x=a:inc:
43、b其中,其中,a是生成数组的第一个元素;是生成数组的第一个元素;inc是采样点之间的间是采样点之间的间隔,即步距。如果(隔,即步距。如果(ba)是)是inc的整倍数,则生成数组的的整倍数,则生成数组的最后一个元素等于最后一个元素等于b;否则不等于;否则不等于b。如果。如果inc的值为正值,的值为正值,则要求则要求ab,否则结果为,否则结果为一个一个“空空”数组。如果省略了数组。如果省略了inc,则步距值默认为,则步距值默认为1。【例例2.2】以以0为初值,为初值,0.2为步距,为步距,1.76为终值,产生一个为终值,产生一个“行行”数组。数组。2.1.1 数组的创建数组的创建 由于由于1.76
44、不是不是0.2的的整倍数,整倍数,所以产生所以产生的最后一的最后一个元素为个元素为1.6,而不,而不是是1.76。2.1.1 数组的创建数组的创建3.定数线性采样法(定数线性采样法(linspace函数)函数)该法在设定该法在设定“总点数总点数”的前提下,均匀采样产生一维的前提下,均匀采样产生一维“行行”数组。该法的通用格式为:数组。该法的通用格式为:x=linspace(a,b,n)其中,其中,a和和b分别是生成数组的第一个和最后一个元素;分别是生成数组的第一个和最后一个元素;n是采样总点数。该指令的作用与指令是采样总点数。该指令的作用与指令x=a:(b-a)/(n-1):b相相同。同。与前
45、一种方法相比,在于与前一种方法相比,在于b一定能够被一定能够被采到。采到。【例例2.3】在指令窗中运行在指令窗中运行linspace函数的示例。函数的示例。2.1.1 数组的创建数组的创建 2.1.1 数组的创建数组的创建4.定数对数采样法(定数对数采样法(logspace函数)函数)该法在设定该法在设定“总点数总点数”的前提下,经的前提下,经“常用对数常用对数”采样产采样产生一维生一维“行行”数组。在系统频率分析中,常常用该指令产数组。在系统频率分析中,常常用该指令产生频率响应的频率自变量采样点。该法的通用格式为:生频率响应的频率自变量采样点。该法的通用格式为:x=logspace(a,b,
46、n)其中,其中,n是采样总点数;生成数组的第一个元素值为是采样总点数;生成数组的第一个元素值为10a;最后一个元素值为最后一个元素值为10b。【例例2.4】在指令窗中运行在指令窗中运行logspace函数的示例。函数的示例。2.1.1 数组的创建数组的创建 2.1.1 数组的创建数组的创建5.中等规模数组的数组编辑器创建法中等规模数组的数组编辑器创建法 当数组规模较大,元素数据比较冗长且杂乱无章时,借当数组规模较大,元素数据比较冗长且杂乱无章时,借助于数组编辑器(助于数组编辑器(Array Editor)比较方便。)比较方便。【例例2.5】根据现有数据创建一个根据现有数据创建一个(38)的数组
47、。的数组。2.1.1 数组的创建数组的创建图图2.1图图2.2(1)单击图)单击图2.1所示的所示的MATLAB默认窗口上面菜单工具栏默认窗口上面菜单工具栏中的图标中的图标 ,在工作空间窗中引出一个名为,在工作空间窗中引出一个名为unnamed变量的数组编辑器,如图变量的数组编辑器,如图2.2所示。所示。2.1.1 数组的创建数组的创建(2)在空白窗口中,按照)在空白窗口中,按照“行、列行、列”次序输入数据。最后次序输入数据。最后一个数据一个数据-9输入结束后,按下输入结束后,按下【Enter】键,或在数组编辑键,或在数组编辑器窗口内单击鼠标,使整个数组保存在器窗口内单击鼠标,使整个数组保存在
48、unnamed变量中。变量中。图图2.3 2.1.1 数组的创建数组的创建(3)在数组编辑器窗口中,右键点中)在数组编辑器窗口中,右键点中unnamed变量,利用变量,利用弹出的菜单的弹出的菜单的Rename unnamed选项,把变量名改成所需选项,把变量名改成所需的名称,比如的名称,比如ABC(此时,在工作空间窗口中会出现该变(此时,在工作空间窗口中会出现该变量)。量)。【说明】【说明】运行上述指令后,在运行上述指令后,在MATLAB的当前目录窗中可以找到的当前目录窗中可以找到一个名为一个名为ABC_DAT.mat的文件,其内容即为的文件,其内容即为ABC变量。变量。该指令中的第一个字符串
49、为保存变量的文件名,第二个该指令中的第一个字符串为保存变量的文件名,第二个字字符串符串为被保存的变量。如果以后要调用该变量,则在指令为被保存的变量。如果以后要调用该变量,则在指令窗中键入窗中键入 load ABC_DAT。save指令和指令和load指令在处理较大规模的数组和需要多次指令在处理较大规模的数组和需要多次重复运行或者需要经过多步中间运算才能得到最终结果的重复运行或者需要经过多步中间运算才能得到最终结果的数组时,有着极为重要的作用。数组时,有着极为重要的作用。2.1.1 数组的创建数组的创建(4)假如该变量要供以后调用,则在指令窗中键入)假如该变量要供以后调用,则在指令窗中键入 sa
50、ve ABC_DAT ABC 2.1.1 数组的创建数组的创建6.中等规模数组的中等规模数组的M脚本文件创建法脚本文件创建法 对于今后经常需要调用的数组,当数组规模较大而复杂对于今后经常需要调用的数组,当数组规模较大而复杂时,为它专门建立一个时,为它专门建立一个M脚本文件是值得的。脚本文件是值得的。【例例2.6】创建和保存数组创建和保存数组 AM的的 MyMatrix.m 文件。文件。2.1.1 数组的创建数组的创建(1)单击)单击MATLAB默认窗口上面的图标默认窗口上面的图标 ,打开,打开M文件文件编辑调试器编辑调试器(Editor/Debugger),并在空白填写框中输入所,并在空白填写