.WORD完美格式..专业知识编辑整理.MATLAB讲义第一章MATLAB系统概述1.1MATLAB系统概述MATLAB(MATrixLABoratory)矩阵实验室的缩写,全部用C语言编写。特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。(2)语句书写简单。(3)语句功能强大。(4)有丰富的图形功能。如plot,plot3语句等。(5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。(6)易扩充。1.2MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。1.3MATLAB的应用范围包括:MATLAB的典型应用包括:数学计算算法开发建模、仿真和演算数据分析和可视化科学与工程绘图应用开发(包括建立图形用户界面)以矩阵为基本对象第二章Matlab基础2.1MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。搜索路径设置存放在文件pathdef.m中,称为当前目录,当要在MATLAB中打开一个文件时,就以当前目录为开始点。.WORD完美格式..专业知识编辑整理.当输入一变量value时,MATLAB的搜索路径次序:value是否为变量value是否为内部函数当前目录中是否存在value.m文件搜索路径上是否存在value.m文件path函数可以控制MATLAB的目录搜索路径,主要使用的格式:path显示当前的搜索路径p=path把当前的搜索路径存到字符变量P中path('newpath')设置路径为'newpath'path(path,'newpath')向当前路径添加一个新目录addpath函数向MATLAB的搜索目录中添加一个新目录。addpath路径名path(path,’路径名’):增加搜索路径rmpath函数从MATLAB的搜索路径删除一个目录。rmpath路径名:删除路径还可以利用菜单:File-setpath(路径浏览器)what:显示出搜索路径上的文件名what路径名:路径名中的文件名typevalue:显示变量内容edit文件名:对m文件进行编辑(2)工作空间(Workspace)工作空间是一个重要而且比较抽象的概念,它是指运行MATLAB程序或命令所生成和存储在内存中的所有变量和MATLAB提供的常量构成的集合。通过使用函数、运行M文件和装载保存的工作空间,可以向工作空间增加变量。save保存整个工作空间或一部分变量,使用方式:saveworkspaceas文件名或save文件名[变量名]load恢复工作空间,使用方式:loadworkspaceload文件名工作空间浏览器:File-ShowWorkspace还有一组命令来管理这些变量。who,whos:显示出工作空间中的变量列表。clear[变量名]:清除变量(3)MATLAB命令窗口输入命令和输出结果。如输入:help[函数名]a=62.2矩阵、变量、运算和表达式(1)矩阵的输入A.直接输入:注意:(1)行元素间用空格或逗号(,)隔开;(2)行与行之间用分号(;)或回车;(3)整个元素列表用[]括起。直接输入的矩阵为一全局变量,一直保存在内存中。例:a=[123;456]a=123456a=[1,2,3;4,5,6;7,8,9]a=[123;456;789].WORD完美格式..专业知识编辑整理.矩阵元素:可以灵活地描述矩阵元素,矩阵元素a[i,j]按列存放通过下标单独对元素赋值例:a(1,1)=1,a(3,2)=a(1,1)得到a=1a=100001即自动形成一个3行2列矩阵,对未赋值的元素充值0。矩阵的元素可以用任意形式的表达式例:算术表达式x=[-1,sqrt(5),(2+7)^4]x=1.0e+003*-0.00100.00226.5610大矩阵可以用小矩阵作为元素例:a=[12;34]b=[aa+5;a-5zeros(size(a))]例:A=[1,2,3;4,5,6]A=123456B=[A;7,8,9]B=123456789可以从矩阵中抽取某些元素构成新矩阵C=A(1:2,:)C=123456例:a=[3,4,5;6,7,8]b=[+2,4*5,6]c=[sin(0.5*pi),sqrt(4),0]d=[a;b;c]复数的表示MATLAB支持复数的运算,复数的虚部用i或j表示。例:a=1+2i或a=1+2j二者表示的结果一样。复数可以直接运算,例:a=3+4i;b=5+6ja+b输出:ans=8.0000+10.0000i复数运算的一些常用函数:①abs返回复数的模②angle返回复数的相角③conj返回共轭复数④imag返回复数的实部.WORD完美格式..专业知识编辑整理.⑤real返回复数的虚部B.用语句或函数产生:a=randn(5,5)产生正态分布5*5的随机矩阵。C.用M-文件或外部数据文件产生:M-文件是一个以.m为后缀的文本文件,文件内容为一系列MATLAB命令,在MATLAB环境下键入该文件名(不包括后缀),文件中的全部命令会依次逐个执行;M-文件名(不包括后缀)相当于一个宏命令.例如:一个名为magik.m的文件包含了如下的内容,(假设magik.m在当前目录下)A=[16.03.02.013.05.010.011.08.09.06.07.012.04.015.014.01.0]在Matlab环境下执行如下命令:magikAA=16321351011896712415141D.用矩阵编辑器创建和修改矩阵:使用File-Showworkspace(2)矩阵运算运算符+,-,*,/(右除),\(左除)和^(幂)。右除:C=A/B即C满足CB=A,当B可逆时,A/B=AB-1左除:C=A\B即C满足AC=B,当A可逆时,A\B=A-1B幂A^n=A*…*A;A必须是方阵。例:矩阵的加减法:a=[1:3;4:6;7:9]b=a;c=a+b;c=a-b注:矩阵相加减必须有相同的维数。例:矩阵的点乘运算,^运算时矩阵必须为方阵,且只能与数字运算。d=a*b必须符合m*n与n*l的结构。d=a.*b矩阵的点乘运算例:\(左除):A\B=inv(A)*B,其中inv(A)表示A逆阵,例如求解AX=B。A=[100;040;009];B=[123;010;011];X=A\B/(右除):A/B=A*inv(B),例如求解XA=B。X=B/A(3)变量与表达式Matlab的赋值语句有两种形式:其一为:变量=表达式;其二为:表达式,将表达式的值赋于一个自动定义的变量ans。注:A:如果以;结尾,则不显示计算结果,否则显示计算结果。B:除保留字外,变量可以用字母开头,后跟19个字母或数字。变量名区分大小写,变量使用时不需要先定义,也不必定义变量的类型。可以用who或whos来显示已定义的变量例如:whoYourvariablesare:ABCaans.WORD完美格式..专业知识编辑整理.whosNameSizeBytesClassA2x348doublearrayB3x372doublearrayC2x348doublearraya3x248doublearrayans1x18doublearrayGrandtotalis28elementsusing224bytes一些常用的变量pi3.14159265//π值isqrt(-1)//虚数单位jsameasiepsfloating-pointrelativeprecision,2.2204e-016//容量变量realminsmallestfloating-pointnumber,2.2251e-308//最小浮点数realmaxlargestfloating-pointnumber,1.7977e+308//最大浮点数infinfinity(任意一个非零数除以0)//正无穷大nanNot-a-number(0/0或inf-inf)//非数如:r=1/0r=inf1/rans=0(4)矩阵的其他简单运算:A’:矩阵转置inv(A):A-1sum(A):得到一个行向量,其元素为A的每一列的和a=[123;456]sum(a)sum(a’)diag(A):得到一个列向量,其元素为A的对角元sum(diag(a))冒号(:)运算符:a:b:c:生成一个由等差数列构成的行向量X,X(i+1)-X(i)=b例:0:pi/4:pians=00.78541.57082.35623.1416如果省略b,则等差数列的公差为1a=0:0.05:1x=linspace(0,1,75)a=1:4;b=1:2:7;c=[b,a]等比数列:logspace(0,2,11)创建起点为10,终点为102,11个元素,公比为100.2矩阵的变换:rot90:矩阵逆时针旋转n*90度。fliplr:矩阵左右翻转。flipud:矩阵上下翻转。稀疏矩阵的存储:sparse(A):用于把完全矩阵压缩为稀疏矩阵。A=[0,1,0,0;0,3,0,4;5,0,0,0;0,0,0,7]sparse(A)ans=(3,1)5(1,2)1(2,2)3(2,4)4.WORD完美格式..专业知识编辑整理.(4,4)7sparse(i,j,u):函数直接造成稀疏矩阵,i,j为向量分别对应行号和列号,u也为向量,存储非元素的值.i=[1,2,2,3,4]j=[2,2,4,1,4]u=[1,3,4,5,7]A=sparse(i,j,u)full函数把稀疏矩阵还原为完全矩阵。(5)数组及其运算:数组可以看作是行向量,实质为阵列运算。是元素对元素的运算,用句号(.)来区别。数组和矩阵之间的区别在于运算规则不同,矩阵运算由线性代数规则来定义。运算符:+,-和.*,./,.\,.^A.*B:A与B对应的元素相乘A.\B:B的元素除以A的相应元素A./B:A的元素除以B的相应元素A.^B:A的元素为底,B的相应元素为幂的数组如:a=[1:3;4:6;7:9]b=a;c=a+b;c=a-b查看下列运算的结果:a*ba.*ba/ba./ba\ba.\ba^b(指数和底数均为矩阵,无法求解)a.^ba’a.’2.3基本数学函数abs(绝对值或复数模)sqrt(平方根)real(复数的实部)imag(复数的虚部)conj(复数的共轭)round(舍入为最接近的整数)//round(-0.5)=-1round(0.4)=0fix(向0方向舍入为整数)//fix(0.99)=0fix(1.01)=1floor(向负无穷大舍入为整数)//floor(-0.5)=-1floor(0.5)=0ceil(向正无穷大舍入为整数)//ceil(-0.5)=0ceil(0.6)=1sign(符号函数)rem(x,