MATLAB入门与基本运算(自编教材).ppt
MATLAB及应用,课程类别:学科基础限选课教学对象:自动化本科四年制二年级学生。教学目的:本课程是自动化专业后续课程的有力工具;使学生初步了解 MATLAB的使用环境及 MATLAB的基本操作,为学生能更好地运用 MATLAB打下良好的基础;为后续的课程设计提供更方便的软件基础。,MATLAB及应用,总学时数:36学时 讲授学时:26学时实验学时:10学时,MATLAB及应用,课程教学基本要求(1)学生掌握MATLAB的使用环境、基本命令、绘图命令以及在工程数学中的应用;(2)要求学生在掌握命令的同时会运用MATLAB进行简单的二维、三维绘图;(3)会用MATLAB对高等数学及工程数学的一些问题进行求解;(4)为以后能深入地学习MATLAB打下良好的基础,从而能运用MATLAB解决本专业的相关问题。,MATLAB及应用,教材及参考书:(1)王学辉主编.MATLAB6.1最新详解.武汉:武汉理工大学出版社(2)何仁斌主编.MATLAB6工程计算及应用重庆:重庆大学出版社(3)楼顺天主编.MATLAB5.x程序设计语言 西安:西安电子科技大学出版社(4)周明主编.MATLAB图形技术绘图及图形用户接口,西安:西北工业大学出版社,第一章 MATLAB入门与基本运算,MATLAB软件环境是美国New Mexico大学的Cleve Moler博士在二十世纪七十年代后期首创的,全名为MATrix LABortory(矩阵实验室),有以下的特点:MATLAB以矩阵为基本编程单元,使矩阵操作变得简单;MATLAB语言书写简单,表达式的书写如同手写一样简单,易于接受;MATLAB语言功能强大,一条语句往往相当其他高级语言的几十条或几百条;MATLAB语言有丰富的图形功能;MATLAB语言提供了面向应用问题的工具箱函数。MATLAB的易扩展性也是最重要的特性。,第一章 MATLAB入门与基本运算,主要内容:MATLAB的安装和界面认识MATLAB的基本概念(包括工作空间、目录、路径和文件管理方式、帮助和例题演示);数组、矩阵和函数的运算规则、命令和调用方式。,1.1 MATLAB环境与文件管理,主要内容:安装;认识界面;上机熟悉。,MATLAB安装,用户在购买到MATLAB 软件后,可以按照相关的说明进行安装,安装过程相对比较简单。步骤:双击光盘中的SETUP安装文件,安装自动运行,出现欢迎使用的对话框单击NEXT按钮,输入口令(PLP),出现许可协议,按YES按钮表示许可,输入用户名和公司名,按NAXT按钮输入要安装的目录,默认为C:/MATLABR12安装完成后,问是否需要重新启动计算机,重新启动后才能正确运行。,MATLAB图标,用户安装完MATLAB后,在桌面上会出现MATLAB快捷图标,双击进入MATLAB界面。,MATLAB界面认识,主菜单,工具栏,命令窗口,历史命令,当前路径,MATLAB界面认识主菜单,MATLAB 7的主菜单包括File、Edit、Debug、Desktop、Window和Help菜单。可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。,MATLAB界面认识工具栏,MATLAB 7的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标同时,MATLAB 7的工具栏适时显示MATLAB 7的当前路径,用户还可以通过工具栏来改变当前路径,MATLAB 的窗口,打开MATLAB,默认打开的窗口包括:(1)命令窗口(Command Window);(2)命令历史窗口(Command History);(3)工作间管理窗口(Workspace);(4)当前路径窗口(Current Directory)此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口。,(1).命令窗口,在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命令窗口,也可以选择Desktop|Desktop Layout|Command Window Only命令。MATLAB 用户界面的右侧窗口就为命令窗口。,(2).命令历史窗口,命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询。如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。,(3).工作间管理窗口,工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。在默认设置下,工作间管理窗口自动显示于MATLAB界面中,(4).当前路径窗口,在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop|Current Directory命令调出或隐藏该命令窗口。当前路径窗口显示着当前用户工作所在的路径,1.2 基本数据定义与变量管理,1.2.1 建立数据直接建立:如:x=5或x1=0.2 1.11 3或y=1 2 3;4 5 6间接建立:如:a=1:10(表示从1到10的数组,间隔为1)a=1:2:10(表示从1到10的数组,间隔为2)命令建立:X=linspace(d1,d2,n)表示从d1到d2的数组,均匀取n个点 思考:x=linspace(1,10,10)得到的结果是?,1.2 基本数据定义与变量管理,1.2.2 who 和whos命令who使用来查询工作空间中的变量whos使用来查询工作空间中的变量的具体细节1.2.3 exist命令格式:iexist(变量名)i0表示该变量不存在;i1表示该变量存在.,1.2 基本数据定义与变量管理,1.2.4 clear命令用来删除不再使用的变量格式:clear 变量名1 变量名2.注意:各个变量名中间不加逗号 若只有clear命令,表示删除工作空间 中的所有变量,1.2 基本数据定义与变量管理,1.2.5 format 命令用来显示 数据格式,1.2 基本数据定义与变量管理,1.2.5 help和lookfor命令help命令用来获得帮助lookfor命令根据关键词提供帮助(查询的不必一定是MATLAB命令),1.3 变量、数组和函数,1.3.1 变量 变量名规则:变量名区分大小写;最多不超过63个字符(以前的版本是19个)变量名必须以字母打头,之后可以是任意的字母、下划线和数字;具有特殊含义的标点符号不能用做变量名,如逗号、分号、句点;一般尽量避免重新定义特殊变量(见表12),1.3 变量、数组和函数,1.3.1 变量,分号和续行符的作用,1.3 变量、数组和函数,若不想在屏幕上输出结果,可以在语句最后加分号,如果语句很长,可用续行符“”(三个点)续行 续行符的前面最好留一个空格,例:,1.3 变量、数组和函数,1.3.2 注释和标点 MATLAB语言用进行注释,注释语句不能续行。如:x1 第一次赋值多条命令可以放在一行,中间用逗号或分号隔开,用逗号要求显示结果,用分号不要求显示结果。如x1;y2 显示为y2,1.3 变量、数组和函数,1.3.3 复数表示用i,j,sqrt(x)表示复数用real,imag,abs,angle表示一个复数的实部、虚部、幅值和相位1.3.4 数学函数见表13,1.4 数据的输入与输出,1.4.1 利用M文件生成数据1.4.2 save和load命令来保存和加载已经有的数据1.4.3 低级文件输入输出,1.5 数组与矩阵运算,1.5.1 矩阵表示与块操作1.矩阵表达式 MATLAB的数组和矩阵都是用 来表示的,定义矩阵的原则是:矩阵元素之间用空格或逗号隔开,行用分号隔开,或另起一行表示。如:a1 2 3;4 5 6 也可以写成 a=1 2 3 4 5 6,1.5.1 矩阵表示与块操作,1.矩阵的转置 a的转置用a来表示如:a1 2 3;4 5 6;aa=a则显示aa 1 4 2 5 3 6,1.5.1 矩阵表示与块操作,3.矩阵的大小 查询矩阵大小的命令有whos,size,length,find,1.5.1 矩阵表示与块操作,3.矩阵的大小 size指令:调用格式n,m=size(A)A是要求的矩阵,n和m是返回的行数和列数。如:a=1 2 3;4 5 6;n,m=size(a)显示:n=2 m=3,1.5.1 矩阵表示与块操作,3.矩阵的大小 length指令:用来返回数组A的维数 调用格式:n=length(A)A是要求的数组,n返回的数组的维数。如:a=1 2 3;n=length(a)显示:n=3,注意:若A为矩阵,则n将返回A的行、列数的最大值。即等效于 max(size(A)如:A=1 2 3;4 5 6;n=length(A)显示:n=3,1.5.1 矩阵表示与块操作,find指令:进行元素的定位如:a=1 2 3;4 5 6;i,j=find(a3)i=2 2 2j=1 2 3,1.5.1 矩阵表示与块操作,4.矩阵的块操作 在MATLAB中,冒号“:”的作用表示“全部”。对于矩阵A(n,m)来说:A(i)表示A的第i个元素(按列数)A(:,i)表示A的第i列A(i,:)表示A的第i行A(i:j)表示A的A(i),A(i+1),.A(j)A(:,i:j)表示A的第i列,第i+1列.第j列A(i:j,:)表示A的第i行,第i+1行.第j行,1.5.1 矩阵表示与块操作,a=1 2 3;4 5 6;7 8 9a=1 2 3 4 5 6 7 8 9 a(:)ans=1 4 7 2 5 8 3 6 9,a(1,:)ans=1 2 3 a(:,1)ans=1 4 7 a(2:5)ans=4 7 2 5,a(:,1:2)ans=1 2 4 5 7 8 a(1:2,:)ans=1 2 3 4 5 6 a(5)ans=5,1.5.1 矩阵表示与块操作,4.矩阵的翻转与旋转操作,1.5.2 矩阵的运算,矩阵运算一般的包括:矩阵与标量的运算矩阵与矩阵的运算矩阵函数等,1.5.2 矩阵的运算,1.矩阵与标量的运算 矩阵与标量的运算完成矩阵的每一个元素对该标量的运算,包括、乘法和除法、乘方等。,如:a=1 2 3;4 5 6;b=a-2b=-1 0 1 2 3 4c=a*2c=2 4 6 8 10 12 d=a/2d=0.5000 1.0000 1.5000 2.0000 2.5000 3.0000,1.5.2 矩阵的运算,1.矩阵与标量的运算 MATLAB用“”表示乘方,求矩阵乘方时要求矩阵为方矩阵 注意:矩阵A的负一次方是A的逆阵,如:e=1 2;3 4;f=e2其平方是eef=7 10 15 22 g=e(-1)g=-2.0000 1.0000 1.5000-0.5000,1.5.2 矩阵的运算,2.矩阵与矩阵的运算 矩阵的加减运算 矩阵的乘法运算 矩阵的除法运算 矩阵的点运算 矩阵求幂,2.矩阵与矩阵的运算,(1)矩阵的加减运算 只有当矩阵A和B维数完全相同时,才可以进行矩阵的加减运算,否则会出现错误信息。,2.矩阵与矩阵的运算,(2)矩阵的乘法运算 当矩阵A的列数和B的行 数相同时,可以进行 AB的运算 注意:MATLAB还可以进行kronecker乘法运算,命令形式cknon(a,b)表示的是a矩阵的每一个元素依次与b的所有元素相乘,2.矩阵与矩阵的运算,(2)矩阵的乘法运算 MATLAB还可以进行kronecker乘法运算,命令形式cknon(a,b)表示的是a矩阵的每一个元素依次与b的所有元素相乘,2.矩阵与矩阵的运算,(3)矩阵的除法运算 矩阵的除法运算包括左除和右除两种运算,其中:左除为:AB=A(-1)B要求A为方阵右除为:A/B=AB(-1)要求B为方阵,2.矩阵与矩阵的运算,(3)矩阵的点运算 两个矩阵之间的点运算就是这两个矩阵的相应元素的相互运算,包括:.*、.和./。C=A.*B表示A和B的相应元素之间进行乘法运算,得到C。C=A.B表示的是B的元素除以A的相应元素得到C。C=A./B表示的是A的元素除以B的相应元素得到C 注意:点运算要求A和B矩阵的维数相同。,2.矩阵与矩阵的运算,(3)矩阵的点运算 例如:a=1 2;3 4;b=1 3;5 7;a.*bans=1 6 15 28,a.bans=1.0000 1.5000 1.6667 1.7500 a./bans=1.0000 0.6667 0.6000 0.5714,2.矩阵与矩阵的运算,(3)矩阵求幂 矩阵的求幂运算包括矩阵与常数和矩阵与矩阵的幂运算,用点运算的形式表示:a.3=,a矩阵的3次方a矩阵的每一个元素的3次方形成的新矩阵3.a=,3的a次方新矩阵的每一个元素都是以3为底,以a的对应元素为指数的。a.b=,a矩阵的b次方新矩阵的每一个元素都是以a的每一个元素为底,以b的对应元素为指数形成的。,2.矩阵与矩阵的运算,(3)矩阵求幂 a=1 2;3 4;b=1 3;5 7;a.3ans=1 8 27 64,3.aans=3 9 27 81 a.bans=1 8 243 16384,2.矩阵与矩阵的运算,(3)矩阵求幂若不是点运算,则,3.aans=3 9 27 81 a.bans=1 8 243 16384,1.5.3 矩阵函数,特殊矩阵,1.5.3 矩阵函数,a=a=a=eye(2)a=1 0 0 1 a=ones(1,2)a=1 1,a=rand(2,2)a=0.9501 0.6068 0.2311 0.4860 a=rand(2,2)a=0.8913 0.4565 0.7621 0.0185 a=zeros(2,2)a=0 0 0 0,1.5.3 矩阵函数,求解线性代数问题的矩阵函数,1.5.3 矩阵函数,a=1 2;3 4a=1 2 3 4 d=eig(a)d=-0.3723 5.3723,V,D=eig(a)V=-0.8246-0.4160 0.5658-0.9094D=-0.3723 0 0 5.3723 det(a)ans=-2,poly(a)ans=1.0000-5.0000-2.0000 trace(a)ans=5,1.6 M函数与M文件,MATLAB提供了M函数和M文件的功能,用户可以利用已知的函数编制自己的M函数和M文件,完成更为复杂的运算。1.6.1 M函数MATLAB的M函数是由function语句引导的,基本格式为:functiony1,y2,.=ff(x1,x2,.)其中,ff为函数名,和 分别为输入和输出变量。,1.6.1 M函数,functionp=ff(x)%定义m函数n=length(x);%求x的维数nfor i=1:n%进行循环运算 pp=sqrt(x(i)2+10);endp=pp*2-5;%对结果进行运算然后定义数组x输入:x=1:5调用ff函数:y=ff(x)得到:y=6.8322,1.6.1 M函数,在function命令中也可以没有输入输出变量,简单定义为:function 文件名它执行该文件指定的操作。如:定义函数test1function test1a=function test 定义符号变量b=1 2;3 4,输入函数名:test1a=function testb=1 2 3 4,1.6.1 M函数,注意:在m函数中使用的变量,除了输入和输出变量之外,所有的变量都是局部变量,即在该函数返回后,这些变量会在工作空间中自动清除。若想使这些中间变量在工作空间中起作用,则应该把它们设置成全局变量,全局变量的命令是golbal命令来设置,命令格式:golbal a b c注意:golbal命令应当在工作空间和m函数中都出现,若在一方出现,则不被承认是全局变量。,1.6.1 M函数,在上面的例题中,增加全局变量在z1,z2functionp=ff(x)global z1 z2 n=length(x);for i=1:n pp=sqrt(x(i)2+10)+z1(i)+z2(i);endp=pp*2-5;,在命令窗口定义全局变量:global z1 z2 z1=1:-.1:.6;z2=0:.5:2;y=ff1(x)y=12.0322,2.M函数文件,基本规则和属性如下:函数名必须和文件名相同M函数文件有自己的工作空间,与matlab的工作空间分开M函数中若有return命令,函数将中断执行,返回工作空间M函数文件可以重复调用自己,但容易造成死循环。,1.6.2 M文件,1.7 多项式运算,MATLAB提供了多条命令,可以进行多项式运算,其中包括:多项式求根及其逆运算多项式加法、减法与乘法运算多项式微分与赋值运算有理多项式,1.7.1 多项式求根及其逆运算,在MATLAB中,多项式的系数有一个行向量来表示,降幂排列。例如多项式:在MATLAB中输入 p=1 2 0-5 6显示为:p=1 2 0-5 6,1.7.1 多项式求根及其逆运算,1.roots命令 这个命令使用来求解多项式的根,求出来的根是按照列向量存储如:p=1 2 0-5 6;rr=roots(p)rr=-1.8647+1.3584i-1.8647-1.3584i 0.8647+0.6161i 0.8647-0.6161i,1.7.1 多项式求根及其逆运算,2.poly命令 这个命令是由多项式的根来求多项式系数的,得到的多项式系数是按照列向量存储。如:a=1 2 3;poly(a)ans=1-6 11-6,1.7.2 多项式加法、减法与乘法,两个多项式的加减法为多项式的相应元素的加减运算。两个多项式的阶数可以不同,但是在多项式定义的时候应当补充0元素使其行向量元素数目相等,否则不能进行加减。,p=1 2 0-5 6;s=0 0 1 2 3;p+sans=1 2 1-3 9 p-sans=1 2-1-7 3,1.7.2 多项式加法、减法与乘法,conv命令:该命令使用来完成两个多项式的乘法运算的。如:p=1 2 0-5 6;s=0 0 1 2 3;conv(p,s)ans=0 0 1 4 7 1-4-3 18,1.7.3 多项式微分,polyder命令:多项式的微分命令例如:p=1 2 0-5 6;polyder(p)ans=4 6 0-5,