2 第一章 MATLAE系统与语百简介 MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1) MATALB语言体 MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、 面向对象等程序语言特性利用它既可以进行小规模编程完成算法设计和算法实验的基本 任务,也可以进行大规模编程,开发复杂的应用程序 (2 MATLAB工作环境 这是对 MATLAB提供给用户使用的管理功能的总称,包括管理工作空间中的变量数 据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具 (3)图形句柄亲统 这是 MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成 图形显示等功能的高层 MATLAB命令,也包括用户对图形图像等对象进行特性控制的低 层 MATLAB命令,以及开发GU应用程序的各种工具。 (4 MATLaB数学函数库 这是对 MATLAB使用的各种数学算法的总称,包括各种初等函数的算法,也包括短阵 运算、矩阵分析等高层次数学算法。 5 MATlAB应用程序接口(API) 这是 MATLAB为用户提供的一个函数库,使得用户能够在 MATLAB环境中使用C 程序或 FORTRAN程序,包括从 MATLAB中调用子程序(动态链接),读写MAT文件的 综上所述,可以看出 MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、 程序开发为一体的环境。除此之外, MATLAB还具有很强的功能扩展能力,与它的主系 起,可以配备各种各样的工具箱以完成一些特定的任务。目前, MathWorks公司推出了 18种工具箱。用户可以根据自己的工作任务,开发自己的工具箱。 1.1.2 MATLAB糸统的常用概念 1命令窗口 在 Windows95下启动 MATLAB系统后, Windows95的工作平台上会弹出一个窗 口,如图1-1所示,这个窗口称为 MATLAB的命令窗口( Command Window) MATLAB的 MAIl AI Command winde 7o Ed option endow Hep Commands to get started: intro, de o, help help Commands for nore information: help, whatsnew, info, subscribe 图1-1 MATLAB的命令窗
1.1 MATLAB系统 命令窗口是用户与 MATLAB解释器进行通信的工作环境,提示符“》”表示 MATLAB解 释器正等待用户输入命令。所有的 MATLAB命令 MATLAB函数,以及 MATLAB程序都 要在这个窗口下运行。 在命令窗口中,用户可以发出 MATLAB命令。例如,为了生成一个3×3阶的矩阵,可 在提示符下键入如下的命令: [123;456;789] 方括号命令表示矩阵,空格或逗号将每行的元素分开,而分号将矩阵的各行数值分开。再键 入 Enter(回车)后, MATLAB将回显如下的矩阵: A 为了求该矩阵的逆矩阵则只要键入命令 >B= inv (A) MATLAB就将计算出相应的结果。如果不想在命令窗口中显示计算结果,只要如上所示 在该命令后多键入一个分号即可。此时 MATLAB系统只完成该命令所要求的计算任务, 其计算结果不回显。这项功能在程序设计中是非常必要的 MATLAB系统也可以说是一种新的语言,该语言十分容易掌握,其结构非常类似于数 学式子的书写格式,用户花上几个小时的时间即可掌握 MATLAB语亩的大部分命令。 MATLAB系统提供了交互式的解释程序环境。为了简化命令的输入, MATLAB提供 了几种行命令编辑功能,可以使用方向键修改输入错了的命令,也可以复制先前使用过的命 令。例如假设将函数名sqrt错写为srt,而键入了如下的命令 >log(srt(atan2(3, 4))) MATLAB将回应一条错误信息: Undefined function or variable srt 为了重新输入这条命令,只要先用↑键将刚才错误的命令复制下来然后用←键或鼠标将光 标移到s与r之间键入q,再回车即可在回车时光标可以在该命令行的任何位置,没有必 要将光标移到该命令的末尾。在 MATLAB的环境下,最后执行的几条命令都存储在内存 bufr中,所以可以复制使用过的命令。特别是可以只键入少量的几个字母,使用↑键即可 复制最后一条以这些字母开始的命令。例如,键入plo,当键入↑后,即可得到最后一条以 po开始的命令,大多数情况是plot命令。 2.图形窗口 MATLAB系统的强大功能之一是其优秀的图形功能。对于任何作图命令, MATLAB 将打开另一个窗口来绘制与输出图形,这样的窗口在 MATLAB系统中被称为图形窗口 ( Figure window)。 在 MATLAB环境中调用任何绘图函数绘图时, MATLAB将自动生成一个图形输出 窗口,并在其中绘出图形。在缺省情况下,图形窗口的标题栏标题为“ Figure No:号码”,其中 “号码”为图形窗口的序号,也称为图形窗口的句柄值,参见本书第二章。在标题栏下面是图
第一章 MATLAB系统与语言简介 形窗口的主菜单栏通常情况下, MATLAB图形窗口的主菜单有File、Edt, Windows和 Hlp。用户可以在菜单条上加入自己的主菜单,具体方法参见本书第五章。 在同一个图形窗口中,可以绘制多个图形,也可以生成多个图形窗口,并选择其中的 个图形窗口,在其中绘制图形。生成图形窗口的方法比较多,在没有图形窗口存在时,每个绘 图函数都能自动生成一个图形窗口;也可以用 figure命令生成一个新的图形窗口;还可以用 命令窗口Fle菜单的New子菜单的 figure项来打开一个新的图形窗口。有关图形的绘制 和管理,参见本书第二章 3搜索路径 MATLAB管理着一条搜索路径,它在搜素路径下寻找与命令相关的函数文件。例如 如果在 MATLAB提示符下输入 example, MATLAB解释器将按照下面的步骤来处理这 条字符串: (a)检查 example是不是一个变量; (b)如果不是,检查 example是不是一个内部函数; (c)如果不是检查在当前文件夹下是否存在名为 example,mex, example.dl,或 example.m的文件。MEX文件是 MATLAB的执行文件,将优先执行; (d)如果不存在,检查在 MATLAB的搜索路径的目录下是否存在名为 exampl mex, example.dl,或 example. m的文件。MEX文件优先执行 使用 MATLAB的path函数,可以查看 MATLAB系统的当前搜索路径,例如 MATLAB PATH C: MATLAB\TOOLBOX\MATLAB C: MATLABTOOLBOX DEMO C: \MATLAB\TOOLBOX\SIGNAL C: MATLAB\TOOLBOX \CONTROL 用户可以用path命令在 MATLAB的搜索路径中添加新的搜索路径。例如,下面的命 令 >>path(C: MYFILES, path) 将搜索顺序改为在搜索完当前目录之后,先搜索目录C: MYFILES,再在当前的 MATLAB搜索路径的目录中搜素。这是由于不带参数的命令path会返回至 MATLAB的 当前搜索路径中。 初始的 MATLAB搜索路径是在文件 malabre,m中描述的,该文件在 MATLAB目录 下,是在安装 MATLAB系统和 MATLAB的各项工具箱的时候生成的。用户可以根据自己 的需要在 matlabrc. m文件中涤加或删除部分目录 4.外部系统命令 在 MATLAB环境中,可以发出 Windows或DOS系统命令。感叹号字符“!”命令能起 到这种作用,它使得 MATLAB将感叹号后面的命令传到相应的操作系统这个过程通常称 为使用外部系统命令。 MATLAB for Windows95系统具有4种形式的外部系统命令,可根 据命令形式的尾部参数来区分
1 MATLAB系统 (1)同步实时处理命令 如果在外部系统命令(感叹号命令)之后没有其他附加的参数,那么 MATLAB会打开 一个新的窗口作为该命令的运行窗口。 MATLAB系统要等到该命令完成之后,才开始接受 新的命令。例如 t di 将生成一个新的窗口,在其中列出当前目录中的内容。虽然 MATLAB执行完上述命令后, 便回到了 MATLAB的提示符状态等待新的命令,但是列出目录内容的窗口要由用户来关 闭 (2)后台处理命令 如果外部命令行以字符“8”结束, MATLAB则将此命令作为后台命令处理,不必等到 该命令完成之后,才接受和执行新的 MATLAB命令。在需要打开新的 Windows应用程序 时,可以使用该命令。例如,发出下列命令: notepads 后,将启动 Notepad作为一个新的 Windows任务。类似地,也可以发出DOs命令,这时将打 开一个DOS窗口,但作为后台处理命令,此时可以在 MATLAB命令窗口中执行其他的命 令 (3)图标后台处理命令 第三种外部命令形式是以字符“”结尾,这个命令的作用与后台处理命令相同,只是用 一个图标作为后台命令打开的窗口。这个命令可以用在对命令的运行结果不惑兴趣的情况 下,例如,DOS的批处理命令等。 (4) MATLAB的DOS命令 另一种使用搡作系统命令的方法是使用 MATLAB的DOS命令。 MATLAB系统将部 分的DOS命令作为自己的命令,执行时将这些命令直接传递给DOS操作系统,运行的结果 在 MATLAB的命令窗口中显示。有时,也打开一个DOS窗口,但该窗口在执行下一条新的 MATLAB命令时自动关闭。也可以在命令后面加上“8”和“”来改变窗口的形态。 1.1.3 MATLAB文件类型 在 MATLAB系统中,根据功能可将 MATLAB系统所使用的外部文件分成几类,并用 不同的扩展名作为其标识,如下所述。 1M文件 M文件以字母m为其扩展名例如 startup. m,一般说来M文件是ASCⅡ码文本文 件,可以用任何文本编辑器进行编辑。在 MATLAB系统中,有两类M文件。一类称为程序 M文件,简称M文件;另一类称为函数M文件或简称为函数,统称为M文件M文件的内 容是由符合 MATLAB语法的语句构成的函数M文件的第一行必须是以关键字 funct 开始的函数说明语句。两类M文件的共同特征是:在 MATLAB命令窗口中的命令提示符 下键入文件名,来执行M文件中的所有语句规定的计算任务或完成一定的功能。它们的区 别在于以下两方面:第一程序M文件中创建的变量都是 MATLAB工作空间中的变量,工
第一章 MATLAB泵统与话言简介 作空间中的其他程序或函数可以共享,而函数M文件中创建的所有变量除了全程变量外 均为局限于函数运行空间内的局部变量;第二,函数M文件可以使用传递参数,所以函数M 文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。 2.MAT文件 MAT文件是 MATLAB系统的二进制数据文件,用于保存 MATLAB系统所使用的数 据。 MATLAB除了可以读写ASCI1码形式的数据文件外,也定义了它自己的数据存储格 式,这就是MAT文件。MAT文件按照 MATLAB的基本数据结构—矩阵的方式来管理 和记录数据。对于每一个矩阵对象,MAT文件记录了该矩阵对象的所有特性和各元素值。 例如,矩阵对象的变量名、维数、矩阵的存储方式(即 MATLAB的满矩阵或稀疏矩阵〕等信 息。如果用户要按照自己的方式读/写MAT文件,必须遵照 MATLAB的规则进行读/写 或利用 MATLAB系统提供的MAT数据接口函数来提取MAT文件中的数据,或向MAT 文件写入自己的数据 3MEX文件 MEX文件是经过 MATLAB编译系统编译的函数二进制文件。MEX文件可以被直接 调入 MATLAB系统中运行,由于 MATLAB是按边解释边运行的方式工作的因此,M文 件的执行速度要比MEX文件慢得多,所以,用户通常把已经调试好,且比较大的M文件编 译成MEX文件,供以后使用。 1.2 MATLAB语言语法要素 MATLAB语言的规则十分简单,它是一种表达式语言,其语句类似于数学式子的格 式,十分容易掌握,下面分几个小节来介绍 1.2.1 MATLAB的矩阵、变量与表达式 在 MATLAB系统中,只管理着一种对象( Object)—矩阵(包括复矩阵)1×1的矩阵 称为数量,或者说任何数量在 MATLAB系统中是作为1×1的矩阵来处理的。与数学术语 样仅有一行或一列的矩阵称为向量。 MATLAB的大部分运算或命令是在矩阵运算的意 义下执行的。 1.矩阵的创建 可以使用下列任何一种方法在 MATLAB环境下创建或输入一个矩阵 (1)显示地输入一个元素序列; (2)用 MATLAB的内部函数创建一个矩阵 3)在M文件中用 MATLAB语句创建一个矩阵 (4从一个外部数据文件中装载并创建一个矩阵 在 MATLAB环境中,不需要对创建的变量对象给出类型说明和维数说明所有的变量 都作为双精度的矩阵来分配内存空间和存储空间。 MATLAB将自动地为每一个变量分配 内存。最简单的创建矩阵的方法是显示地输入矩阵的元素序列。具体方法如下:将矩阵的元