版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 MATLAB应用基础实验指导书 文档可自由编辑打印 第一章 MATLAB及其工作环境介绍11.1 MATLAB简介11.2 MATLAB的工作环境介绍11.3 MATLAB的基本管理命令4第二章 MATLAB的数值计算功能52.1 变量与赋值语句52.2 MATLAB矩阵52.3 MATLAB表达式102.4 MATLAB常用数学函数112.5 矩阵的基本运算122.6 数组运算162.7 多项式及其运算17第三章 MATLAB程序设计入门193.1 M文件193.2 数据的输入输出213.3 全局变量和局部变量233.4 程序流程控制23第四章 MATLAB的符号运算功能284.1 建立符
2、号对象284.2 符号算术运算294.3 符号微积分运算324.4 符号函数的可视化34第五章 MATLAB的可视化功能375.1 二维图形375.2绘制三维图形425.3 特殊坐标图形445.4 图形句柄45 第一章 MATLAB及其工作环境介绍1.1 MATLAB简介MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MAT
3、LAB数学函数库和MATLAB应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MATLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。MATLAB具有以下基本功能:l 数值计算功能l 符号计算功能l 图形处理及可视化功能l 可视化建模及动态仿真功能MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MATLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高
4、效率,其程序编译和执行速度远远超过了传统的C和FORTRAN语言,因而用MATLAB编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB已成为国际上公认的最优秀的科技应用软件。1.2 MATLAB的工作环境介绍一、 MATLAB的工作环境MATLAB 6.5的工作桌面由标题栏、菜单栏、工
5、具栏、命令窗口、工作空间窗口、当前目录窗口、历史命令窗口及状态栏组成,如图1-1所示。 图1.1 MATLAB工作界面MATLAB的工作环境主要由命令窗(Command Window)、若干个图形窗(Figure window)、文本编辑器()和文件管理器组成。各视窗之间的切换可用快捷键Alt+Tab。1命令窗命令窗是人们与MATLAB作人机对话的主要环境,通过它可以键入MATLAB的各种命令并读出相应的结果。但要注意,每一条命令或命令行键入后都要按回车键,命令才会被执行。例如,键入a=ones(3,3)然后按回车键,即可创建一个3*3且元素值为1的矩阵,并显示如下运行结果:a= 1 1 1
6、1 1 1 1 1 12图形窗通常,只要执行了任意一种绘图命令,图形窗就会自动产生。绘图都在这一图形窗中进行。如果想再建一个图形窗,则可键入figure,MATLAB会新建一个图形窗,并自动给它排出序号。3文本编辑器MATLAB程序编辑有行命令方式和文件方式两种,行命令方式是在命令窗中一行一行地输入程序,计算机每次对一行命令作出反应,像计算器那样,只能编简单的程序,在入门时通常用这种方式。文件方式适用于稍复杂一些的程序,此时把程序写成一个有多行语句组成的文件,让MATLAB来执行这个文件中的全部语句。编写和修改这种文件程序就要用到文件编辑器。4文件管理窗在较为复杂的程序中,特别是涉及与其它软件
7、系统进行文件或数据交换时,需要用到文件管理系统。MATLAB利用了Window操作系统本身的文件管理器。高版本的MATLAB已把MATLAB文件管理所需的功能集成到MATLAB命令窗口中,使用非常方便。二、 获取帮助信息MATLAB为用户提供了强大的在线帮助功能。获取帮助信息有如下两种方式:1 用帮助菜单获取帮助信息l 单击MATLAB命令窗口菜单栏的(Help)菜单项,选择(Help Window)选项,则打开MATLAB帮助主题窗口。该窗口列出了MATLAB的所有帮助主题,双击相关主题即可打开有关该主题的进一步详细说明。l 单击MATLAB命令窗口菜单栏的(Help)菜单栏目,弹出帮助菜单
8、选项,选择(Help Desk)选项,则打开MATLAB帮助工作台。Helpdesk以超文本方式为用户提供帮助信息,从基本的入门帮助到工具箱的使用。用户只需单击工作台中的相关主题,即可获得该主题的超文本格式的详细帮助信息。2 通过命令窗口获取帮助信息通过在命令窗口直接键入帮助命令也可获取MATLAB的在线帮助信息。帮助命令如下:help 列出MATLAB的所有帮助主题helpwin 打开MATLAB的帮助主题窗口helpdesk 打开MATLAB的帮助工作台help help 打开有关如何使用帮助信息的帮助窗口help+函数名(或主题名) 查询函数(或主题)的相关信息三、 使用演示功能(Dem
9、o)MATLAB的演示功能可以帮助用户学习和理解MATLAB的应用和强大功能,启动MATLAB的演示程序可通过如下两种方法:(1) 选择(Help)菜单的(Examples and Demos)选项,即可打开MATLAB演示窗口。(2) 在MATLAB的命令窗口中键入命令Demo,也可打开演示程序窗口。四、 MATLAB的退出退出MATLAB,只需在MATLAB命令窗口内键入命令exit或quit,或单击命令窗口的关闭按钮即可。1.3 MATLAB的基本管理命令 一、工作空间(workspace)的概念及操作当MATLAB启动后,系统自动在内存中开辟一块区域用于存储用户在MATLAB命令窗口中
10、定义的变量、运算结果和有关数据。此内存空间称为MATLAB的工作空间(workspace)。工作空间在MATLAB刚启动时为空,此后,用户所定义的变量、运算结果和有关数据均存储在该空间。但用户退出MATLAB后,工作空间的内容将不再保留。为了能将工作空间的内容长期保留下来,MATLAB为用户提供了将工作空间以MAT文件格式保存到磁盘的功能,具体操作如下:(1) 保存工作空间。单击MATLAB命令窗口菜单栏的文件(file)菜单,选择(Save Workspace as)菜单选项,系统打开工作空间保存设置对话框,在该对话框中用户可对工作空间保存的路径和文件名进行设置。(2) 装载工作空间。在使用
11、MATLAB的过程中,如果需要用到上一次已保存的工作空间的变量和数据,可以使用以下操作将已保存的工作空间的变量和数据装载到当前工作空间中。单击MATLAB命令窗口菜单栏的文件(File)菜单,选择(Load Workspace)菜单选项,系统打开工作空间装载设置对话框。在该对话框中选定已保存的工作空间的文件名,单击(打开)按钮,即可将已保存的工作空间的内容装载到当前工作空间。二、 清除变量命令clearclear命令用于清除当前工作空间中的指定或全部变量。其命令格式为:clear %清除当前工作空间中的全部变量clear a b c %清除当前工作空间中的指定变量a、b和c三、 MATLAB工
12、作窗口操作命令clc 擦除工作窗口中所显示的所有内容 clf 擦除当前图形窗口中的图形 exit 关闭并退出MATLAB pack 整理内存碎片以扩大内存空间 cd 改变当前工作目录dir 列出当前目录及该目录下的文件及子目录清单第二章 MATLAB的数值计算功能2.1 变量与赋值语句1. 变量变量代表一个或若干个内存单元,为了对变量所对应的存储单元进行访问,需要给变量命名。在MATLAB中,变量名是以字母开头,后接字母、数字或下划线,字符长度应不大于31个,且区分字母的大小写。MATLAB的变量分为字符变量和数值变量两种。字符变量必须用单引号括起来。例:a=happy new year %表
13、示将字符串happy new year赋值给字符变量ab=365 %表示将数值365赋值给数值变量b2. 赋值语句MATLAB赋值语句有两种形式(1) 变量=表达式(2) 表达式在第一种语句形式下,MATLAB将右边表达式的值赋给左边的变量;在第二种语句形式下,将表达式的值赋给MATLAB的永久变量ans。表达式可以由分号、逗号或回车结束,如果用分号结束,则左边的变量结果将不在屏幕上显示出来,否则将把结果全部显示出来。MATLAB程序(称为M文件)中的语句常以分号结束。在一条语句中,如果表达式太复杂,一行写不下,可以接上三个小黑点(续行符)并按下回车键,然后接下去再写。可以在语句后加上注释。注
14、释以%开头,用于解释或说明,对计算结果不产生任何影响。例2.1 计算表达式的值,并将结果赋给变量a,然后显示出结果。解:在MATLAB命令窗口输入命令: a=2*sin(85*pi/180)/(1+sqrt(5)+3*i) 其中pi和i都是MATLAB定义的变量,分别代表和虚数单位。 该命令的输出结果是: a=0.3311-0.3070i2.2 MATLAB矩阵矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需要对矩阵的维数和类型进行说明,MATLAB会根据用户输入的内容自动进行配置。 2.1.1 矩阵的建立1直接输入法对于较
15、小的简单矩阵,从键盘上直接输入矩阵是最常用、最方便的数值矩阵创建方法。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例2.2 生成一个3*3的矩阵只需输入 A=1,2,3;4,5,6;7,8,9 A= 1 2 3 4 5 6 7 8 9 也可以用回车键代替分号,按下列方式输入: A=1 2 3 4 5 6 7 8 9 其结果同上。MATLAB的每一个元素都可以是复数,实数是复数的特例,复数的虚数部分用i或j表示。这是在MATLAB启动时就自动设定的。例如,键入 c=3+5.2i得 c=3.0000+5.200
16、0i对复数矩阵有两种赋值方法:(1) 可将矩阵元素逐个赋予复数,例如,键入z=1+2i, 3+4i; 5+6i, 7+8i 得 z= 1.0000+2.0000i 3.0000+4.0000i 5.0000+6.0000i 7.0000+8.0000i (2) 将矩阵的实部和虚部分别赋值,如 z=1, 3; 5, 7+2, 4; 6, 8*i 两种方法可得出同样结果。注意只有数字和i的乘积式中可省略乘号,在方法(2)中若省略“*”,就会出错。另外,如果在前面其它程序中曾经给i或j赋过值,则i,j已经不是虚数符号,这些虚数赋值语句都不对。此时应键入 clear i,j即把曾赋值过的i,j清掉,恢
17、复为虚数标识符,然后再执行复数赋值语句。2利用MATLAB函数创建矩阵MATLAB为用户提供了创建矩阵的函数,他们是:l ones()函数l zeros()函数l rand()函数 l randn()函数l eye()函数ones()函数用于产生全为1的矩阵,ones(n)产生(n*n)维的全1阵,ones(n,m)产生n行m列的全1阵。zeros()函数用于产生全0的矩阵。rand()函数用于产生0,1区间均匀分布的随机阵。randn()函数用于产生正态分布的矩阵。eye()函数用于产生单位阵,eye(n)产生(n*n)维的单位阵。l 利用函数reshape建立数值矩阵 例,在MATLAB命
18、令窗口输入如下命令:xv=1:12 %产生有12个元素的行向量xvym=reshape(xv, 3, 4) %利用向量xv建立3*4矩阵ym输出结果为xv= 1 2 3 4 5 6 7 8 9 10 11 12ym=1 4 7 102 5 8 113 6 9 123利用外部数据文件(*.mat)保存和装载矩阵在MATLAB的运行过程中,有时需要将矩阵数据长期保留下来,可以使用MAT文件对矩阵数据进行保存,在需要时将其装载到MATLAB环境中。MAT文件是MATLAB保存数据的一种标准格式的二进制文件。MAT文件的生成和调用由专用命令save和load来进行。用户可以将已定义过的矩阵(变量)以M
19、AT文件的格式存入到磁盘上,命令格式为:save 路径文件名 变量save命令可同时将多个矩阵(变量)保存到一个MAT文件中,此时变量名之间需用空格分开。 例如,用户输入命令:save c:my a b 则表示将变量a、b以文件名my.mat保存到C盘根目录下。若路径默认,则MATLAB自动将变量保存到其默认的目录(work)中。以MAT文件保存的矩阵,用户在使用MATLAB的任何时候均可用load命令装载到MATLAB的工作空间中。例如,要将上述保存的变量a、b重新装载到MATLAB的工作空间,只需键入命令:load c:my2.2.2 矩阵元素MATLAB允许用户对一个矩阵的单个元素进行赋
20、值和操作。例如,如果想将矩阵A的第2行第3列的元素赋为200,则可通过下面语句完成: A(2, 3)=200 这时将只改变该元素的值,而不影响其它元素的值。如果给出的行数和列数大于原来矩阵的范围,则MATLAB将自动扩展原来的矩阵,并将扩展后未赋值的矩阵元素置为0。 例如:A=1, 2, 3; 4, 5, 6; A(3, 4)=10 则输出为:1 2 3 04 5 6 00 0 0 102.2.3 向量的生成 在MATLAB系统中,仅有一行或一列的矩阵称为向量,向量是矩阵的一种特例,在MATLAB中除利用前面已介绍过的创建矩阵的方法来生成向量外,还有以下几种方法:1利用冒号“:”运算生成向量l
21、 a=m:nl a=m:p:n 第一种格式用于生成步长值为1的均匀等分向量,其中m、n为标量(数量),分别代表向量的起始值和终止值,且n>m。例如,输入语句: a=1:10 运行结果为: a=1 2 3 4 5 6 7 8 9 10第二种格式用于生成步长值为p的均匀等分的行向量。利用函数linspace()生产向量l linspace(m, n)l linspace(m, n, s)第一种格式生成从起始值m开始到终止值n之间的线性等分的100个元素的行向量。第二种格式生成s个线性等分点的行向量。例如:linspace(0, 10, 5)ans=0 2.5000 5.0000 7.5000
22、 10.00002.2.4 矩阵拆分1利用冒号表达式获得子矩阵(1) (:,j)表示取A矩阵的第j列全部元素;A(i,:)表示取A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。(2) (i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素;A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。例如: A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20; A(2:3,4:5) ans=9 1014 152利用空矩阵删除矩阵的元素在MAT
23、LAB中,定义 为空矩阵。向量X赋空矩阵的语句为X= ,X= 与clear X不同,clear是将X清除出工作空间,而空矩阵则存在于工作空间,只是维数为0。将某些行与列从矩阵中移去,采用将其置为空矩阵的方法就是一种有效的方法。例如:A=1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18;A(:,2 4)= 其中第二条命令将删除A的第二列和第四列元素。其输出为: A= 1 3 5 6 7 9 11 12 13 15 17 182.2.5 who、whos和永久变量1who和whos who和whos这两个命令的作用都是列出在MATLAB工作空间中已经驻留的变
24、量名清单。但whos在给出驻留变量名的同时,还给出它们的维数和性质。2永久变量在MATLAB工作空间中,还驻留几个由系统本身定义的变量。由于它们不能被clear清除,故称为永久变量。除前面介绍过的ans外,其余常用的永久变量有:eps MATLAB计算浮点数的误差限pi 圆周率的近似值3.149inf或Inf 无穷大,如一个数除以0的结果NaN 非数,例如0/0、inf/inf产生的结果i或j 虚数单位realmax MATLAB所能表示的最大浮点数realmin MATLAB所能表示的最小浮点数2.3 MATLAB表达式2.3.1算术表达式 MATLAB的算术运算符有: +(加)、-(减)、
25、*(乘)、/(右除)、(左除)、(乘方)对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于除数是标量的运算,两种除法运算的结果相同,如3/4=43=0.7500; 又如,a=10.5,2.5,则a/5=5a=2.1000,0.5000。2.3.2 关系表达式 MATLAB提供了6种关系运算符: <(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=(等于)、=(不等于) 运算法则: (1) 当两个比较量是标量时,直接比较两个数的大小。若关系成立,关系表达式结果为1,否则为0。 (2) 当参与比较的量是两个维数相同的矩阵时,比较是对两个矩阵
26、相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。 (3)当参与比较的一个是标量,另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的运算结果是一个维数与矩阵相同的矩阵,它的元素由0或1组成。 (4)算术运算比关系运算具有更高的优先权。A=1,1,2;2,3,1;4,2,1;B=1,1,1;1,1,1;1,1,1;A<=Bans=1 1 00 0 10 0 12.3.3 逻辑表达式 MATLAB提供了三种逻辑运算符:&(与)、|(或)、(非)。 运算法则:(1)
27、逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。(2) 若参与逻辑运算的是两个标量a和b,那么 a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1. a 当a是零时,运算结果为1,当a是非零时,运算结果为0。(3) 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终结果是一个与原矩阵同维数的矩阵,其元素由1或0组成。(4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终结果是一个与矩阵同维数的矩阵,其元素由1或0组成。(5) 逻辑“非
28、”是单目运算符,也服从矩阵运算规则。(6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。 例:A=0 1 0 2 0 3 0 4; B=0 1 0 0 0 1 0 0; A&B ans= 0 1 0 0 0 1 0 0 A|B ans= 0 1 0 1 0 1 0 1 A ans= 1 0 1 0 1 0 1 02.4 MATLAB常用数学函数MATLAB提供了几乎所有初等数学函数,包括三角函数、对数函数、指数函数和复数运算函数等。函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数的调用格式为:函数名
29、(变量)1. 三角函数sin 正弦函数 cos 余弦函数tan 正切函数 asin 反正弦函数acos 反余弦函数 atan 反正切函数sinh 双曲正弦函数 cosh 双曲余弦函数tanh 双曲正切函数 asinh 反双曲正弦函数acosh 反双曲余弦函数 atanh 反双曲正切函数2. 基本函数abs 实数的绝对值、复数的模、字符串的ASCII码值angle 复数的复角 sqrt 平方根函数real 复数的实部 imag 复数的虚部conj 复数共轭运算 round 四舍五入到最近邻的整数fix 向零方向取整 floor 不大于自变量的最大整数sign 符号函数 ceil 不小于自变量的最
30、小整数rem 求余数或模运算 gcd 最大公因子lcm 最小公倍数 exp 自然指数函数log 自然对数函数 log10 以10为底的对数函数例:a=1 2 3 4 5; %定义向量asin(a) %计算向量a的正弦ans=0.8415 0.9093 0.1411 -0.7568 -0.9589fix(pi*a)ans= 3 6 9 12 152.5 矩阵的基本运算 矩阵运算是MATLAB运算的基础。1. 矩阵转置矩阵的转置用符号“”来表示和实现。假如A矩阵为一个m*n矩阵,则其转置矩阵B的元素定义如下:bji=aij (i=1,m,j=1,n)例如: A=1 2 3;4 5 6;7 8 9;
31、 B=A输出为: B= 1 4 7 2 5 8 3 6 9若A矩阵含有复数元素,则对之进行转置时,其转置矩阵B的元素定义为bji*=aij,i=1,m,j=1,n,亦即首先对各个元素进行转置,然后再逐项求取其共轭复数值,这种转置方式又称为Hermit转置,其数学记号为B=A*。例如:A=5+i,2-i,3.1;6*i,4,7-2i;B=AB= 5.0000-1.0000i 0-6.0000i 2.0000+1.0000i 4.0000 3.1000 7.0000+2.0000i2. 矩阵的加和减矩阵的加减运算使用的是“+”和“-”运算符。假设有两个矩阵A和B,则可以由下面的命令执行矩阵加减法:
32、C=A+B和C=A-B。运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减法,矩阵的加减就是A和B矩阵的相应元素相加减。如果A和B的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。3. 矩阵乘法矩阵乘法用*表示。假设有两个矩阵A和B,若A为矩阵,B为np矩阵,则C=A*B是mp矩阵,其各个元素为:cij= (i=1,2,m;j=1,2,p)例如: A=1,2,3;4,5,6;B=1,2;3,0;7,4; C=A*B C=28 1461 32 矩阵A和B进行乘法运算,要求A的列数与B的行数相同,此时称A,B矩阵是可乘的,或称A和B矩阵维数相容。如果两者的维数不相容,
33、则将给出错误信息,表示两个矩阵是不可乘的。 在MATLAB中还可以进行矩阵和标量相乘,标量可以是乘数也可以是被乘数。矩阵和标量相乘是矩阵中的每个元素与此标量相乘。3 矩阵除法在MATLAB中有两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于矩阵运算,一般ABB/A。4 矩阵的乘方 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。例如:A=1,2,3;4,5,6;7,8,0;A2ans= 30 36 15 66 81 42
34、39 54 69显然,A2即A*A。5 MATLAB的常用矩阵运算函数(1) size()函数 size()函数用于计算矩阵的行数和列数,其调用格式为: m,n=size(a) 将矩阵a的行数赋值给m、列数赋值给n 例如,运行如下命令: a=1 3 5 7 92 4 6 8 10; m,n=size(a) 运行结果为: m= 2 n= 5 (2)length()函数 length()函数用于计算矩阵的长度(列数),调用格式为: a=length(b) 将矩阵b的列数赋值给变量a例如,运行如下命令: b=ones(1,100); a=length(b) 运行结果为: a= 1003. prod(
35、)函数 prod()函数用于实现矩阵元素的求积运算,其调用格式为:l prod(a) 若a为向量,则该调用格式将计算出向量a所有元素之积。若a为矩阵,则该调用格式将产生一行向量,其元素分别为矩阵a的各列元素之积。l prod(a,k) 该调用格式将对矩阵a按k定义的方向进行求积运算,若k=1则按列的方向求积,若k=2则按行的方向求积。例如,运行如下命令:b=1 1 1 1 2 2 2 2 3 3 3 3; p1=prod(b) p2=prod(b,2) 运行结果为: p1= 6 6 6 6 p2= 1 16 81 4. sum()函数 sum()函数用于实现矩阵元素的求和运算,其调用格式与pr
36、od()函数类似。5. max()函数 max()函数用于求出矩阵元素的最大值,其调用格式为:l max(a) 若a为向量,则该调用格式将求出向量a所有元素中的最大值。若a为矩阵,该调用格式将产生一行向量,其元素分别为矩阵a的各列元素的最大值。l max(a,k) 该调用格式将对矩阵a按k定义的方向求最大值,若k=1则按列的方向求最大值,若k=2则按行的方向求最大值。另外,与max()相类似的函数还有min()(求最小值)和mean()(求平均值)函数,它们的调用格式与max函数完全相同。(6)fliplr()函数fliplr()函数用于实现矩阵的反折运算,即调用格式为:a=fliplr(b)
37、该命令将产生维数与矩阵b相同的矩阵a,其元素是由矩阵b的元素按列的方向进行反折而得。例如,执行:b=0:10a=fliplr(b)则结果为:b=0 1 2 3 4 5 6 7 8 9 10a=10 9 8 7 6 5 4 3 2 1 02.6 数组运算在MATLAB中,数组和矩阵是两个完全不同的概念,它们遵循着不同的运算规则。MATLAB中数组运算符由矩阵运算符前面加一点“.”来表示,如.*、./、.等。1. 数组的加和减数组的加减运算与矩阵的加减运算相同。2. 数组的乘和除数组的乘法用符号.*表示。如果A、B两数组具有相同的维数,则A.*B表示A和B单个元素之间的对应相乘。例如:x=1 2
38、3;y=4 5 6;z=x.*yz= 4 10 18数组的除法用符号./或.表示。如果A、B两数组具有相同的维数,则A./B表示A数组的元素除以B数组的对应元素。B.A等价于A./B。例如:x=1 2 3;y=4 5 6;z1=x./y z2=y.x输出分别为:z1= 0.2500 0.4000 0.5000z2= 0.2500 0.4000 0.50003. 数组的乘方数组的乘方用符号“.”表示。若两个数组的维数一致,则两数组对应元素进行乘方运算,例如:x=1 2 3;y=4 5 6;z=x.yz= 1 32 729指数可以是标量,底也可以是标量。例如:x=1 2 3;z=x.2z=1 4
39、9x=1 2 3;y=4 5 6;z=2.x yz=2 4 8 16 32 642.7 多项式及其运算 MATLAB提供了标准多项式的常用函数,包括求根、相乘、相除等。1多项式的表达与创建MATLAB采用将多项式系数按降幂次序排列形成的行向量来表征一多项式。设多项式为:A(S)=anSn+an-1Sn-1+a1S+a0则表征该多项式的行向量为:P=an an-1 a1 a0。因此,在MATLAB中,创建多项式即可用创建行向量的方法,直接输入按顺序排列的多项式系数即可。例如,输入语句:A=2 2 1 1;即表示创建多项式2S3+2S2+S+1, 并赋值给变量A。2多项式求根MATLAB提供的ro
40、ots函数用于求多项式的全部根。其调用格式为:X=roots(A)。例:试用roots函数求多项式x4+8x3-10的根。其MATLAB命令为:A=1 8 0 0 10;X=roots(A)X= -8.0194 -0.5075+0.9736i -0.5075-0.9736i 1.03443 由指定根求多项式函数poly用于由指定根求多项式系数向量,调用格式为:A=poly(p)其中p为多项式根(行或列向量表示),A为返回的多项式系数(行向量表示)。例如p=2 1; %指定多项式的根为2和1poly(p) %求满足指定根的多项式ans=1 -3 2可见roots()与poly()互为逆运算。4多
41、项式相乘(卷积)函数conv()用于求两个多项式的乘积多项式,其调用格式为:R=conv(A,B)其中A、B分别为表征两个多项式的行向量,R为返回的乘积多项式的系数向量(按降幂次序排列)。例如:A=1 3 2; %创建多项式S2+3S+2B=1 2 1; %创建多项式S2+2S+1R=conv(A,B) %求多项式A与B的乘积多项式R= 1 5 9 7 25多项式相除(解卷积)函数deconv()用于进行两个多项式的相除运算,它是相乘运算(conv)的逆运算,其调用格式为:B,t=deconv(R,A)其中R为被除多项式,A为除数多项式,B为商多项式,t为余多项式。即多项式R除以多项式A后得商
42、多项式B和余多项式t。例如:R=1 5 9 7 2; %创建多项式s4+5s3+9s2+7s+2A=1 2 3; %创建多项式s2+2s+3B,t=deconv(R,A) %求多项式R除以多项式A后的商多项式B和余多式t B= 1 3 0 t= 0 0 0 -2 2 若余多项式系数向量为零向量,则表示R能被A除尽。 第三章 MATLAB程序设计入门3.1 M文件用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。两者区别在于:命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可返回输出参数。命令文件对MATLAB工作空间中的变量进行操作,而函数文件中定义
43、的变量为局部变量,当函数文件执行完毕时,这些变量被清除。3.1.1 M文件建立与编辑M文件可以用任何编辑程序建立和编辑,而最常用且最为方便的是使用MATLAB提供的M文件窗口。1. 建立新的M文件从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令,将得到M文件窗口。在M文件窗口中输入M文件的内容,输入完毕后,选择此窗口File菜单的Save as命令,将会得到Save as对话框。在对话框的File框中输入文件名(注意,其扩展名必须为.M),再选择OK按钮即完成新的M文件的建立。2. 编辑已有的M文件从MATLAB命令窗口的File菜单中选择Open M-file命
44、令,则屏幕出现Open对话框,在Open对话框中的框中输入文件名(必要时加上路径),或从右边的Directories框中打开这个M文件所在的目录,再从下面的列表框中选中这个文件,然后按OK按钮即可打开这个M文件。在M文件窗口可以对打开的M文件进行编辑修改。在编辑完成后,选择File菜单中的Save命令可以把这个编辑过的M文件保存下来。3. 搜索与执行M文件M文件中的命令是通过在MATLAB命令窗口中键入M文件的文件名并按下回车键来执行的。当用户在命令窗口中键入M文件的文件名并按下回车后,系统先搜索该文件,若该文件存在,则以解释方式顺序逐条执行M文件的语句。例如,若用户在命令窗口中输入文件名ex
45、ample并按回车键,则系统搜索该文件的过程如下:(1) 在工作空间中寻找变量example,检查example是否为变量。(2) 检查example是否为MATLAB的内部函数。(3) 在当前目录中搜索文件example.m。(4) 在MATLAB的默认搜索路径中查找文件example.m。“work”目录是系统M文件的默认保存目录。若用户的M文件保存在“work”目录以外的其它位置,则可以通过如下两种方式在MATLAB命令窗口中直接调用该M文件。方式一:启动MATLAB后,用“CD”命令将当前工作目录更改为M文件的保存目录如:cd A:mydata方式二:用“path”命令将M文件的保存目
46、录添加到MATLAB的默认搜索路径中。设待执行的M文件的保存位置为“D:myfile”,则添加搜索路径的命令为:path(path,D:myfile)运行该命令后,即可直接在MATLAB命令窗口中直接调用并执行D:myfile 目录下的所有M文件。3.1.2 命令文件当用户运行的命令较多或需要反复运行多条命令时,直接从键盘逐行输入命令显得比较麻烦,而命令文件则可以比较好地解决这一问题。我们可以将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。例:建立一个命令文件将变量a、b的值互换,然后运行该命令文件。解 (1)首先建立命令文件
47、并以文件名e31.m存盘:a=1:9;b=11,12,13;14,15,16;17,18,19;c=a;a=b;b=c;ab(2) 在MATLAB的命令窗口中输入e31,将会执行该命令文件,输出为:a= 11 12 13 14 15 1617 18 19 b=1 2 3 4 5 6 7 8 9调用该命令文件时,不用输入参数,也没有输出参数,文件自身建立需要的变量。当文件执行完毕时,可以用命令whos查看工作空间中的变量。这时会发现a,b,c等变量仍然保留在工作空间中。3.1.3 函数文件函数文件是M文件的另一种类型,函数文件必须以关键字“function”开头。函数文件的第一行为函数说明语句,
48、其格式为:function 返回参数1,返回参数2,=函数名(传入参数1,传入参数2)其中函数名为用户自己定义的函数名(与变量命名规则相同)。函数文件保存的文件名应与用户定义的函数名一致,例如,若函数文件说明语句中定义的函数名为“example”,则该函数文件保存的文件名应为“example.m”。用户可通过函数说明语句中的返回参数及传入参数来实现函数参数传递。返回参数和传入参数并不是必须的。下面是函数文件调用及参数传递的例子。首先创建函数文件并保存。function m,s=mean(a) %定义函数文件mean.m,a为传入参数,m、s为返回%参数 l=length(a); %计算传入向量
49、长度 s=sum(a); %对传入向量a求和并赋值给返回向量s m=s/l; %计算传入向量的平均值并赋值给返回向量m 上述函数文件定义了一个新的函数mean其作用是对指定向量求和及均值,并通过向量s、m返回计算结果。用户通过如下所示的命令调用该函数。a=1:9;m,s=mean(a)m= 5s= 453.2 数据的输入输出MATLAB的输入输出方式包括命令窗口的输入输出及图形界面的输入输出。此外,它还允许对文件进行读写。这里先介绍命令窗口的输入输出。1. input函数MATLAB提供了一些输入输出函数,允许用户和计算机之间进行数据交换。如果用户想给计算机输入一个参数,则可以使用input函数来进行,该函数的调用格式为:A=input(提示信息,选项);其中提示信息可以是一个字符串,它用来提示用户输入什么样的数据。例如,用户想输入矩阵A,则可以采用下面的命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年婚礼化妆造型合同
- 2024大数据中心存储设备采购合同
- 2024年度分包合作协议书
- 中考状语课件教学课件
- 2024年度版权返租及授权使用协议
- 2024年国际皮毛市场交易合同
- 乡镇防汛抗旱救灾的应急预案(5篇)
- (2024版)洒水车团队租赁合同(2024版)
- 2024年度软件许可及技术支持服务合同
- 2024年度互联网金融服务平台合作协议
- 第十三章医疗服务管理课件
- 工程质保期满验收报告模板
- 高考地理复习:过程类推理综合题解析-以地貌景观题为例
- 初中语文阅读专题教学课件
- 胶质瘤的综合治疗课件
- 孟子三章课件
- 关于钢结构高强度螺栓连接技术(PPT,2022)
- 互联网发展历程课件
- 教育科研征文
- CT增强检查及风险知情同意书
- 环境保护与水土保持检查表
评论
0/150
提交评论