1第一部分Matlab软件基础一、软件安装、启动与退出1、软件安装在PC机上安装Matlab,双击“setup.exe”应用程序,启动安装向导,按照屏幕提示操作,如输入用户名、单位名、口令等。2、软件启动启动Matlab有多种方法:一是双击桌面上的Matlab快捷方式图标;二是单击开始—程序—Matlab……3、软件退出退出Matlab也有多种方法:一是单击窗口右上角的×号;二是在command窗口中键入exit或quit回车。二、Matlab基本界面不同版本的Matlab,工作环境不完全相同,但它是一个典型的Windows应用程序窗口:由标题栏、菜单栏、工具栏、交互窗口、状态栏、垂直和水平滚动条等部分组成。其中,交互窗口主要包括:命令窗、历史指令窗、当前目录窗、工作空间浏览窗(含数组编辑器)、资源目录本、帮助浏览器、图形窗、程序编辑调试器等等。各交互窗口的打开与关闭、浮动与嵌入均可通过指令、菜单或工具控制。所有交互窗口中以命令窗最重要。2三、命令窗1、窗口的脱离与嵌回将指令窗脱离的方法有:执行MATLAB\View\undockcommandwindow命令或点击指令窗器右上角的“undockfromdesttop”钮。将脱离的指令窗嵌回的方法:执行CommandWindow\View\dockcommandwindow命令。2、命令窗显示方式指令窗中的字体风格、大小、颜色和数值计算结果显示等显示方式可采用缺省显示方式。想修改显示方式,先选中桌面或指令窗中的File菜单,执行Proference\CommandWindoworFont&Colors命令,该设置将立即有效且永久保留。屏显格式有Loose(缺省)和Compact两种。数据存储和运算格式中有一种,即16位十进制(二进制双精度),但显示格式有8种,缺省的数据格式是formatshort(四位小数)。3、常用标点的功能标点符号在MATLAB中的地位极其重要,为确保指令正确执行,标点符号一定要在英文状态下输入。常用标点符号的功能如下:逗号,用作要显示计算结果的指令与其后面的指令之间的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。黑点.用作数值表示中的小数点;用于元素群运算。分号;用作不显示计算结果指令的结尾标志;用作不显示计算结果的指令与其后面的指令之间的分隔;用作数组的行间分隔符号。冒号:用以生成一维数值数组;用做单下标援引时,表全部元素构成的长列;用做多下标援引时,表示那维上的全部。注释号%由它启首后的所有物理行被看作非执行的注释。单引号‘’字符串记述符。圆括号()在数组援引时用;函数指令输入宗量列表时用。方括号[]输入数组时用;函数指令输出宗量列表时用。花括号{}元胞数组记述符。续行号…由三个以上连续黑点构成。它把其下的物理行看作该行的逻辑继续,以构成一个较长的完整指令。4、常用操作指定在MATLAB指令窗中,常见的通用操作指定主要有:clc清除指令窗中显示内容clear清除MATLAB工作空间中保存的变量。closeall关闭所有打开的图形窗口cd设置当前工作目录。clf清除图形窗内容。dir列出指定目录下的文件和子目录清单。edit打开m文件编辑器。3exit关闭/退出MATLAB。quit关闭/退出MATLAB。more使其后的显示内容分页进行。type显示指定M文件的内容。disp显示变量的内容。what列出当前目录或指定目录下的文件。lookfor按指定的关键字查找.m文件(在查找范围内)。exist检查变量或函数文件的存在性。fdatool打开滤波器设计分析工具箱simulink打开仿真工具箱!运行外部程序(命令)。5、指令编辑操作键↑前寻调回已输入过的指定行。↓后寻调回已输入过的指定行。←在当前行中左移光标。→在当前行中右移光标。PageUp前寻式翻阅当前窗中的内容。PageDown后寻式翻阅当前窗中的内容。Home使光标移到当前行的首端。End光标移到当前行的尾端。Delete删除光标右边的字符。Backspace删除光标左边的字符。Esc清除当前行的全部内容。四、操作举例:最简单的计算器使用法例1:求23)]47(212[的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容clc;clear;(12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter】键,该指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=2例2:简单矩阵987654321A的输入步骤。(1)在键盘上输入下列内容A=[1,2,3;4,5,6;7,8,9](2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A=1234567894第二部分Matlab基本语法一、标识符、特殊变量标识符是标志变量名、常量名、函数名和文件名的字符串的总称。标识符可由字母、数字和下划线组成,但必须以英文字母开头。标识符区分字母大小写。特殊变量是MATLAB内部用来表达特殊含义的变量(包括常量),又称为MATLAB的预定义变量。如:ans(指当前未定义变量名的答案);eps(表示浮点相对精度,eps=2-52≈2.2204e-016);inf(无穷大);nan(不是数);i或j(虚单元);pi(圆周率);nargin(函数输入宗量数目);nargout(函数输出宗量数目);realmax(最大正实数);realmin(最小正实数)。在编写和程序指定时,应尽可能不对这些预定义变量重新赋值。二、变量及其赋值MATLAB的变量可以是一组由实数或复数组成的数组。数组中的每一个元素可用变量后面圆括号()中的数字(也称为下标)注明,如一维数组(或称向量)中的元素用一个下标表示;二维数组可用两个以逗号分开的下标表示;可扩展到三维或高维。1、一维数组的创建与寻访创建一个一维数组有多种方法。(1)逐个元素输入法:元素可用表达式(2)冒号生成法:x=a:inc:b(步长为1时,可用x=a:b生成)(3)定数线性采样法:x=linspace(a,b,n)(4)定数对数采样法:x=logspace(a,b,n)一维子数组的寻访(Address)。例3:x=[1,2,3,4,5,6,7,8,9],y1=x(3),y2=x([125]),y3=x(1:3),y4=x(3:end),y5=x(3:-1:1),y6=x(find(x4)),一维子数组的赋值(Assign)。例4:x=[1,2,3,4,5,6,7,8,9],x(3)=0,x([56])=[11],2、二维数组的创建与寻访二维数组从结构上看,和矩阵没有什么区别。当二维数组带有线性变换含义时,该二维数组就是矩阵。创建一个二维数组必须注意三个要素:一是整个输入数组必须以方括号为其首尾;二是数组同一行中各元素之间以逗号或空格分隔;三是不同行之间必须用分号或回车隔离。在MATLAB环境下,也可用另一种输入方式创建复数数组。例5:创建复数数组M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16]CN=M_r+i*M_i二维子数组的寻访与赋值。例6:创建数组有时也可用函数的方法进行创建5a=reshape(1:9,3,3)a=147258369二维子数组的寻访a(2,3)二维子数组的赋值a(3,3)=0二维子数组的全行赋值a(2,:)=[1,2,3]二维数组取数b=a([1,3],[2,3])%取出第1、3行和第2、4列交点上元素构成新矩阵二维子数组抽数a([2,3],:)=[]%抽出第2行和第3行的所有元素二维子数组的扩展赋值a(4,:)=[4,5,6],3、变量检查在调试程序中,往往需要检查工作空间的变量及其阶数,可用whoorwhos命令。如想清除工作空间的变量,可用clear命令。利用工作空间浏览器的现场菜单,不但可以检查变量,还可以输入、编辑、保存、图形显示(矩阵以列为单位)变量。三、函数及其应用MATLAB语言的难点是函数多,仅基本部分就有700多个函数,共分为22大类(即22个函数库)。学习函数的基本方法是利用help命令或help窗口文件,在应用中逐步扩展掌握。例7:绘制两条正弦信号波形,wt取0到2π。clear;wt=0:2*pi/100:2*pi;y1=sin(wt);y2=sin(wt-pi/4);plot(wt,y1,'r')holdonplot(wt,y2,'b:')axis([0,2*pi,-1.1,1.1])xlabel('wt'),ylabel('y'),title('正弦波形图'),gridon四、矩阵运算和数组(元素群)运算矩阵在结构上和二维数组没有区别,但矩阵是一种具有线性变换意义的二维数组。由于矩阵具有线性变换意义,故矩阵运算有明确而且严格的数学规则。把矩阵作为一个整体6进行运算的运算符有五个“’、*、/、\、^”,运算函数有三个“sqrtm、expm、logm”。在做矩阵运算时,往往需要提取其中某些行列结构的元素来组成新的矩阵;有时则要改变矩阵的排列。如行列提取、抽除和转置等。数组(元素群)运算是指对数组中所有元素按单个元素进行运算。MATLAB所有的运算符和函数都适用于做元素群运算。如果是对数组进行“转置、乘、除、幂”等运算,必须在运算符前加一个小黑点。例8:解线性方程组AX=B,只须输入:A=[6,3,4;-2,5,7;8,-4,-3];B=[3;-4;-7];X=A\B,五、逻辑操作在程序流控制中,在逻辑推理中,都需要对一类是非问题作出真假回答,为此,MATLAB设计有包括关系运算、逻辑运算和一些相关函数的逻辑操作。MATLAB约定:在所有关系表达式和逻辑表达式中,输入的任何非0数视为逻辑真,而只有0才被认为是逻辑假;所有关系表达式和逻辑表达式的计算结果是一个由0和1组成的逻辑数组;逻辑数组是数值类的子类,它有数值数组的全部属性,又可表示事物的判断结论。1、关系运算关系运算是指两个元素之间的数值比较。数值关系一共有“、=、、=、==、~=”6种可能,但结果只有“0、1”两个。2、逻辑运算基本的逻辑运算只有“&、|、~”三种,有时也包括异或(xor)。输出结果仍只有“0、1”两个值。3、逻辑关系函数常用的逻辑关系函数用法可索引帮助文档。4、运算优先级MATLAB表达式中可能包含多种运算符:数学运算符、关系运算符、逻辑运算符等等。各运算符的优先级别是:括号、转置与幂、正负符号与逻辑非、乘除、加减、关系运算、逻辑与、逻辑或。相同级另的运算符先左后右依次执行。六、流程控制控制MATLAB的程序流有循环语句和条件转移语句两类控制语句,还有一些程序流控制指令。1、for语句(循环次数确定)2、while语句(循环次数不确定)3、if语句(条件转移)4、switch语句(条件转移)5、控制程序流的常用指令returninputkeyboardyesinputpausebreakerrorwarning7第三部分Matlab基本操作一、m文件(在程序编辑调试器中新建、打开、编辑和调试)对于比较简单的问题或一次性问题,通过在指令窗中直接输入一组指令求解,也许是比较简便快捷的方式。但当待解决的问题须即时应用,或所需指令较复杂,或一组指令只须改变少量参数就可反复解决不同问题时,直接在指令窗中输入指令的方法就显得烦琐、累赘和笨拙。m文件可很好地解决这个问题。m文件可用编辑调试器(Edit/Debugger)进行编辑调试。缺省情况下,m文件编辑器不随MATLAB的启动而开启,新建或打开(均有edit指令、菜单或工具三种操作)m文件时均可启动m文件编辑器。m文件的扩展名是“*.m”。m文件的指令形式和前后位置与在指令窗中输入的指令没有任何区别,MATLAB在运行该文件时,只是简单地从该文件中一条条地读取并送到MATLAB中去执行,产生的变量都驻留在工作空间。m文件的编写:用clear,closeall,clc等语句清除工作