第一章MATLAB基础1.1MATLAB概述1.1.1MALTAB简介Matlab是“MatrixLaboratory”的缩写,意为“矩阵实验室”,主要适用于矩阵运算及控制和信息处理领域的分析设计。它使用方便,输入简便,运算高效、内容丰富、容易由用户自行扩展。现已成为美国和其它发展中国家大学教学和科研中不可缺少的工具。Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作。Matlab自1984年推出以来,版本不断升级,1992年4.x版,1997年5.0版,1999年5.3版,2000年6.0版,2004年7.0版,从2006年起,MathWorks公司每年发布两次以年份命名的MATLAB版本,如R2006a(MATLAB7.2)、R2006b(MATLAB7.3)、R2007a(MATLAB7.4)、R2007b(MATLAB7.5)、R2008a(MATLAB7.6)、R2008b(MATLAB7.7)、R2009a(MATLAB7.8)、R2009b(MATLAB7.9)等。历经几十年的发展和竞争,现已成为国际最优秀的科技应用软件之一。1.1.2MATLAB的特点1.功能强大MATLAB具有数值计算和符号计算功能,以及简单易用的绘图功能,MATLAB提供了各种工具箱,用于求各类(各学科)应用问题,另外,还提供了仿真工具。2.语言简单Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。Matlab语言与其它语言相比,较好地解决了编辑、编译、连接和执行问题,融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。3.扩充能力强Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。另外,为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran,C语言程序,混合编程,方便地调用有关的Fortran,C语言的子程序。4.语句简单,内涵丰富Mat1ab语言中最基本最重要的成分是函数,其一般形式为[a,b,c,…]=fun(d,e,f,…),即一个函数由函数名fun,输入变量d,e,f,……和输出变量a,b,c……组成,对同一函数名fun,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性)。这不仅使Matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得Matlab编写的M文件简单、短小而高效。1.1.3MATLAB的主要功能1.数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。MATLAB和著名的符号计算语言Maple与MuPAD(从MATLAB2008b开始使用MuPAD)相结合,使得MATLAB具有符号计算功能。2.绘图功能MATLAB提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。3.编程语言MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。4.MATLAB工具箱MATLAB包含两部分内容:基本部分和各种可选的工具箱。MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的ControlSystem工具箱和神经网络中NeuralNetwork工具箱等.1.2Matlab的集成环境1.2.1启动与退出MATLAB集成环境安装MATLAB7.X系统,需运行系统自带的安装程序setup.exe,可以按照安装提示依次操作。与一般的Windows程序一样,启动MATLAB系统有3种常见方法:(1)使用Windows“开始”菜单。(2)运行MATLAB系统启动程序matlab.exe。(3)双击桌面的MATLAB图标。启动MATLAB后,将进入MATLAB7.x集成环境。MATLAB7.x集成环境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和启动平台窗口(LaunchPad)。当MATLAB安装完毕并首次启动时,展现在屏幕上的界面为MATLAB的默认界面,如下图1.1所示。图11.1(7.5版)要退出MATLAB系统,也有3种常见方法:(1)在MATLAB主窗口File菜单中选择ExitMATLAB命令。(2)在MATLAB命令窗口输入Exit或Quit命令。(3)单击MATLAB主窗口的“关闭”按钮。1.2.2主窗口MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。1.菜单栏MATLAB的菜单栏包括7个菜单项,其中File菜单实现有关文件的操作,Edit菜单用于命令窗口的编辑操作,Debug菜单用于程序调试,Parallel菜单用于设置并行计算的运行环境,Desktop菜单用于设置MATLAB集成环境的显示方式,Window菜单用于关闭所有打开的编辑器窗口或选择活动窗口,Help菜单用于提供帮助信息。2.工具栏MATLAB的工具栏提供了一些命令按钮(包括新建文件、打开文件、剪切、复制和粘贴等常用图标)和一个当前路径列表框。这些命令按钮有对应的菜单命令,但比菜单命令使用起来更快捷、方便。1.2.3命令窗口(CommandWindow)命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如p=15,m=35p=15;m=35如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。1.2.4工作空间窗口工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。1.2.5当前目录窗口和搜索路径1.当前目录窗口当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:\mydir设置为当前目录,可在命令窗口输入命令:cdc:\mydir2.MATLAB的搜索路径当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:(1)检查该命令是不是一个变量。(2)检查该命令是不是一个内部函数。(3)检查该命令是否当前目录下的M文件。(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:(1)用path命令设置搜索路径。例如,将用户目录c:\mydir加到搜索路径下,可在命令窗口输入命令:path(path,’c:\mydir’)(2)用对话框设置搜索路径。在MATLAB的File菜单中选SetPath命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过AddFolder或AddwithSubfolder命令按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径。1.2.6命令历史记录窗口命令历史窗口可以内嵌在MATLAB主窗口的右下部,也可以浮动在主窗口上。在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。1.2.7启动平台窗口和Start按钮MATLAB7.x的启动平台窗口可以帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。MATLAB7.x主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。1.3数据与变量1.3.1表达式Matlab的表述语句、变量的类型说明由Matlab系统解释和判断,Matlab语句通常形式为:(1)变量=表达式或者使用其简单形式:(2)表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.例1-1:设球的半经为r=2,求球的体积334rV解:在命令窗口输入以下代码:r=2r=2V=4/3*pi*r^3%pi为系统内置常量,乘方用^表示V=33.5103需注意的问题有以下几点:语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果.如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,目的是避免将形如“数2…”理解为“数2.”与“..”的连接,从而导致错误),然后回车.Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.例1-2(续):r=2;V=4/3*pi*r^3V=33.5103%用分号时,r的结果不显示r=2,V=4/3*pi…%用三个“…”表示续行*r^3%因为是接上一行,前面没有提示符r=2V=33.5103若需要修改已执行过的命令行,可以在命令历史窗口中找到该命令行复制,再粘贴至命令窗口修改,也可直接使用↑、↓键调出已执行的命令进行修改。例如,现将半经改为9,那么使用上述方法得:r=9;%更新r值V=4/3*pi*r^3%使用↑键直接调出.V=3.0536e+0031.3.2数据显示格式MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。MATLAB默认的数据显示格式为短格式(short),当结果为整数时,就作为整数显示,当结果是实数时,则以小数点后4位的长度显示;若结果的数据的有效数字超出一定范围,则使用科学记数法显示;在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format格式符其中格式符决定数据的输出格式表1-1format命令的格