1、MATLAB 快速入门MATLAB 是一种功能非常强大的科学计算软件. 在正式使用它之前应对它有一个整体的认识. 本章将介绍 MATLAB 的基本内容, 主要包括 MATLAB 的历史和特点, MATLAB6.x 的新特点, MATLAB6.x 的安装过程及一些网络资源等. 由于 MATLAB的工具箱和模块集种类繁多, 因此, 可采用 SWYN(Select What You Need)安装模式. 本章给出各组件的简单说明, 用户可以根据自己的需要选择安装. 对MATLAB 的桌面环境的介绍可以使用户在使用时得心应手. MATLAB 具有强大的帮助系统, 了解这些帮助系统对 MATLAB 的学
2、习和使用都是非常主要的. 帮助系统主要包括在线帮助系统, 演示系统和命令查询等.本章是根据 MATLAB6.5 版编写的,但大部分内容也适用于其他 6.x 版.1.1 MATLAB6.x 简介MATLAB 源于 MATrix LABoratory 一词, 原意为矩阵实验室. 一开始它是一种专门用于矩阵数值计算的软件. 随着 MATLAB 的逐渐市场化, MATLAB 不仅具有了数值计算功能, 而且具有了数据可视化功能. 自 MATLAB4.1 版本开始, MATLAB 拥有了它自己的符号运算功能, MATLAB 的应用范围进一步拓宽. 在MATLAB6.x 版本中, 它不仅在数值计算, 符号运
3、算和图形处理等功能上进一步加强, 而且又增加了许多的工具箱. 目前, MATLAB 已拥有数十个工具箱, 例如, 控制工具箱(Control Toolbox), 信号处理工具箱(Signal Processing Toolbox),通信工具箱(Communication Toolbox)和专用图形处理工具箱(Specgraph Toolbox)等, 这些工具箱可以供不同专业的科技人员使用. 特别在最新的MATLAB6.x 版本中, 计算速度又有了明显的提高. MATLAB 是真正面向 21 世纪的科学计算软件.1.1.1 MATLAB 语言主要特点1功能强大MATLAB4.0 以上(不包括 4
4、.0 版本)的各版本, 不仅在数值计算上继续保持着相对其他同类软件的绝对优势, 而且还开发了自己的符号运算功能. 特别是MATLAB6.x 版本在符号运算功能上丝毫不逊于其他各类软件, 如 MathCAD, Mathematica 等软件. 用户只要学会了 MATLAB6.x, 就可以很方便地处理线性代数中的矩阵计算, 方程组的求解, 微积分运算, 多项式运算, 偏微分方程求解, 统计与优化等问题.在数值计算过程中, MATLAb 中许多功能函数都带有算法的自适应能力, 且算法先进, 大大解决了用户的后顾之忧, 这也大大弥补了 MATLAB 程序因非可执行文件而影响其速度的缺陷, 因为在很多实
5、际问题中, 计算速度对算法的依赖程度大大高于对算法本身的依赖程度. 另外, MATLAB 提供了一套完善的图形可视化功能, 为用户向别人展示自己的计算结果提供了广阔的空间. 图 1.1.1 就是利用 MATLAB 绘制的三维图形.2. 语言简单如果一种语言的功能非常强大, 但语言本身却晦涩难懂, 那么它绝非是一个成功的语言. MATLAB 在此方面是成功的, 它允许用户以数学形式的语言编写程序, 比 BASIC, FORTRAN, UNIX 等语言更接近于书写计算公式的思维方式. 它的操作和功能函数指令就是以平时计算机和数学书上的一些简单英文单词表达的. 由于它在很长一段时间内是用 C 语言开
6、发的, 它的不多的几个程序流控制语句同 C 语言差别甚微, 初学者很容易掌握.MATLAB 语言的帮助系统也很完备, 用户可以方便地查询到想要的各种信息.图 1.1.1 MATLAB 三维图形示例3. 扩充能力强, 可开发性强MATLAB 能发展到今天这个程度, 它的可扩充性和可开发性起着不可估量的作用. MATLAB 本身就像一个解释系统, 对其中的函数程序的执行以一种解释执行的方式进行. 这样最大的好处是 MATLAB 完全成了一个开放的系统, 用户可以方便地看见函数的源程序, 也可以很方便地开发自己的程序, 甚至可以创建自己的工具箱.另外, MATLAB 可以方便地与 FORTRAN,
7、C 等语言接口, 以充分利用各种资源. 用户只需将已有的 EXE 文件转换成 MEX 文件, 就可以很方便地调用有关程序和子程序.MATLAB 和 Maple 有很好的接口, 这也大大扩充了 MATLAB 的符号运算功能.4. 编程容易, 效率高从形式上看, MATLAB 程序文件是一个纯文本文件, 扩展名为 m. 用任意字处理软件都可以对它进行编写和修改, 因此程序易调试, 人机交互性强.另外, MATLAB6.x 还具有比较健全的调试系统, 调试方便, 简单.2000 年下半年, Mathworks 公司推出了 MATLAb6.0 的试用版本, 并于 2001年初推出了正式版. 紧接着,
8、于 2002 年 7 月又推出了他们的最新产品MATLAB6.5, 并升级了 Simulink 到 5.0 版本. MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互式工作界面. 下面详细介绍 MATLAB6.x 的新特点.1.1.2 MATLAB6.x 的新特点与 MATLAB5.x 版本相比较, MATLAB6.x 版本在各个方面都进行了很大的改进和补充, 增加了许多新功能和更加有效的处理方法, 甚至在整个系统的结构上也做了较大的改进.1. 开发环境与 MATLAB5.x 相比, MATLAb6.x 改进了原有的系统结构, 将各种对 MATLAB应用提供支
9、持的系统集成为全新的 MATLAB 开发环境, 其中最明显的是集各种对MATLAB 文件、数据变量进行操作的工具以及 MATLAB 自身的辅助工具为一体的MATLAB 桌面系统. 该桌面系统就是用户对 MATLAB 操作的 面板. 从开始应用MATLAB 到退出 MATLAB, 几乎所有的操作都在桌面系统内完成.在开发环境中, MATLAB6.x 也提供了更为强大的帮助功能, 几乎所有的帮助都可以以在线帮助的形式完成, 同时也提供了一种全新的帮助浏览器, 更加方便用户获得所需要的信息.在网络间使用 MATLAB 时, 可以通过 MATLAB6.x 提供的工具箱路径缓冲功能以加快 MATLAB
10、的启动速度.为了方便数据的读取, MATLAB6.x 提供了数据编辑器, 以完成从 MATLAB 外部便捷地读取数据的功能, 通过该编辑器可以实现多种数据类型的转换.2 数据处理MATLAB6.x 在数据处理上也提供了许多新功能, 不仅增加了许多新函数, 也调整了部分函数的功能.首先, MATLAB 6.x 的矩阵运算基于 LAPACK一种大型的线性代数FORTRAN 函数库, LAPACK 扩展了 MATLAB 的计算功能, 也提高了 MATLAB 处理大规模计算的速度, 同时在 MATLAB6.x 中几乎所有的矩阵运算都会附带计算的截断误差.具体地说, MATLAB6.x 增加了许多矩阵运
11、算细节的处理. 例如, 细化了特征值的计算, 增加了最新的矩阵分解方法等功能.对于希疏矩阵的运算, MATLAB6.x 也提供了全新的处理方法, 并对原函数做了适当的优化, 以提高其运算效率及运算能力. 例如, 增加了 symmlq, minres, lsqr 等函数, 用于迭代求解对称正定问题以及最小二乘问题. 此外, MATLAB6.x 通过基于 Qhall 的函数扩展了 Delaunay 型函数系的功能; 在 MIT 的 FFTW 函数库的基础上重新构建了快速傅里叶变换(FFT); 增加了许多微分方程的求解方法; 改进了 quad 函数的算法, 并引进了新的正交化函数quadl, 该函数
12、能够更快速, 更准确以及更稳定地处理正交问题, 同时还可以较好地处理正交化过程中的奇异问题.MATLAB6.x 的另一个重要革新是扩展了函数的调用功能, 同时引进了曲线拟合以及数据统计界面, 方便了具体操作中的使用.3.程序和数据结构在程序处理过程中, MATLAB6.x 的一个重要变化就是引入了函数句柄(Function Handles)数据类型. 用户可以为任何 MATLAB 函数创建函数句柄, 并以该函数句柄作为相应函数的参照, 由此方便对函数的操作. MATLAB6.x 相应地提供了一系列的函数, 对函数句柄进行操作.在程序流程控制中, MATLAB6.x 增加了 continue 语
13、句, 以配合 for 或while 循环语句的操作.MATLAB6.x 也提供了许多程序设计的辅助函数,如 beep, isvarname 等.同时,对MATLAB 的数据类型做了进一步的扩充, 而且取消了对 M 文件编辑长度的限制.更有意义的是最新的 MATLAB6.x 版本中提供了 JIT 程序加速器, 大大提高了程序的运行速度. 对于一般的程序, 对比不同版本的运行速度时发现, 新版本的运行速度甚至可以提高上百倍甚至几百倍!4. 图形处理MATLAB6.x 中有一个对图形对象属性进行设置的新增图形属性编辑的界面, 该界面比 MATLAB5.x 中的界面功能更加全面, 操作也更为方便.MA
14、TLAB6.x 对图形的输出也做了适当的改进, 提供了更为丰富的属性设置, 以提高图形输出的效果.5. 用户图形界面与以前版本相比, MATLAB6.x 的图形用户界面(GUIs)的设计更加灵活, 对GUIs 编辑工具也做了相应的改进.6. 应用程序接口对应用程序接口最主要的改进是在 MATLAB6.x 中增加了与 Java 的接口, 并为实现两者的数据交换提供了相应的函数库. 对原有的应用程序接口, MATLAB6.x也做了适当的修改和改进.1.2 MATLAB 的安装和内容选择随着软件功能的不断增强, MATLAB 对计算机硬件环境的要求也越来越高. MATLAB 本身适应于许多机种和系统
15、, 如 IBM-PC, Macintosh 和 Unix 工作站等. 本节将介绍在操作系统为 Microsoft Windows XP Professional 的 PC 上安装MATLAB6.5 的具体步骤.将 MATLAB6.5 的安装光盘放入光驱, 一般情况下, 系统会自动搜索到autorun 文件并进入安装界面. 对已经安装 MATLAB 的用户, 界面会一闪而过或者根本看不到界面的出现, 这时系统认为安装已经完成, 此时用户可以自己执行安装盘内的 setup.exe 文件启动 MATLAB 的安装程序.当用户填写注册信息及接受使用协议后, 将进入 MATLAB 的选择安装界面, 如图
16、 1.2.1 所示. 用户可以依使用的要求有选择地安装各组件. 此界面同时显示了所需磁盘空间的大小与当前磁盘可用空间大小的信息, 可以依此更改安装目录.图 1.2.1 MATLAB 组件选择界面完全安装 MATLAB6.x 需要 1.5GB 以上的硬盘空间, 对一般的计算机用户来说, 这不是个小数目, 并且即使有足够的空间, 许多工具箱软件包也可能在相当长的时间根本用不到, 因此选择安装就显得很主要了.表 1.2.2 列出了供选择的各个选项的具体解释. 用户可以参照此表中的解释旋转所需要的工具箱. 对于按照本书内容学习的初学者, 选择带星号“*”的内容就可以了, 大约需要 250MB 的硬盘空
17、间. 对于硬盘很大的用户, 最好根据需要安装, 不要以为多多益善, 否则会影响运行速度. MATLAB6.x 的安装及卸载功能也是很友好的, 不同时安装的内容可不同时卸载.表 1.2.2 MATLAB 各组件的功能组件名称 功能解释*MATLAB MATLAB 主程序, 最核心的部分.Simulink 用方块图建模和仿真;主要用微分和差分方程描写的非线性动态系统CDMA Reference Blockset CDMA 参考模块板Communications Blockset 通信模块集Communications Toolbox 通信工具箱*Control System Toolbox MAT
18、LAB 涉及控制的工具箱有十多个,本工具箱是最基本的, 是解决控制问题所必选的.DSP Blockset 数字信号模块集DATA Acquisition Toolbox 数据采集工具箱Database Toolbox 数据库工具箱Datafeed Toolbox 数据流入工具箱Dials and Gauges Blockset 刻度标尺模块集Excel Link 外链接Filter Design Toolbox 滤波器设计工具箱Financial Derivatives Toolbox金融系统工具箱Financial Time Series Toolbox金融时间系列工具箱Financial
19、Toolbox 金融财政工具箱Fixed-Point Blockset 定点模块集Fuzzy Logic Toolbox 模糊逻辑工具箱GARCH Toolbox GARCH 工具箱Image Processing Toolbox 图像处理工具箱Instrument Control Toolbox LMI 控制工具箱*MATLABC/C+Math Library MATLABC/C+数学计算库*MATLABC/C+GraphicsLibrary MATLABC/C+图形库*MATLAB Compiler 把 MATLAB 的 M 文件编译成 DLL 文件,或 EXE 独立应用程序MATLAB
20、Report Generator MATLAB 报告生成器Mapping Toolbox 制图工具箱Model Predictive Control Toolbox模型预测控制工具箱Mu-Analysis and Synthesis ToolboxMu 分析与合成工具箱Neural Network Toolbox 神经网络工具箱Nonlinear Control Design Blockset非线性设计模块集*Optimization Toolbox 包含求函数零点,极值,规划等优化程序的工具箱*Partial Differential Equation Toolbox偏微分方程工具箱Powe
21、r System Blockset 动力系统模块集Real-time Workshop 实时工作间Real-time Workshop Ada Coder实时工作间 Ada 编码器Requirements Management Interface需求管理界面Robust Control Toolbox 鲁棒控制工具箱SB2SL(convert models to Simulink)模型转换成 Simulink 工具Signal Processing Toolbox 信号处理工具箱Spline Toolbox 内含样条和插值函数的工具箱Stateflow 与 Simulink 配合使用, 主要用
22、于较大型,复杂动态系统的建模,分析,仿真Stateflow Coder 状态流编码器*Statistics Toolbox 包含进行复杂统计分析所需程序的工具箱*Symbolic Math Toolbox 符号类数据的操作和运算工具箱System Identification Toolbox据时域信号进行动态系统辨别工具箱Wavelet Toolbox 小波工具箱xPC Target xPC 对象xPC Target Embedded Option xPC 对象内置属性 1.3 MATLAB 快速入门MATLAB 的入门级学习是比较容易的事.但同时 MATLAB 是一个很复杂的程序, 功能强大
23、. 要用好 MATLAB, 需要有一定的数学基础, 还要熟悉 Windows 的基本操作.1.3.1 启动 MATLAB启动 MATLAB 有多种方式. 最常用的方法是双击系统桌面的 MATLAB 图标, 也可以在开始菜单的程序选项中选择 MATLAB 快捷方式, 也可以在 MATLAB 的安装路径的 bin 目录中的子目录 win32 中双击可执行文件 matlab.exe.初次启动 MATLAB 后, 将进入 MATLAB 默认设置的桌面平台, 如图 1.3.1 所示.图 1.3.1 MATLAB 的桌面平台1.3.2 Desktop 桌面平台简介默认情况下的桌面平台包括以下几个主要窗口,
24、 分别是 MATLAB 主窗口、命令窗口(Command Window) 、历史窗口(Command History) 、当前目录窗口(Current Directory) 、工作空间管理窗口(Workspace) 、交互界面分类目录窗口(Launch Pad)等. 图 1.3.1 是 6.5 版 Desktop 桌面平台的缺省外形. 该桌面的上层有 3 个最常用的窗口: 命令窗口、历史窗口、工作间管理窗口, 在窗口的左下角新增加了“开始按钮”. 在缺省情况下, 还有一个只能看见窗口名的常用交互窗口: 当前目录窗口. 下面分别对各窗口做简单介绍.1. MATLAB 主窗口与 MATLAB 的早
25、期版本不同的是, MATLAB6.x 增加了一个主窗口, 如图1.3.1 所示. 其他的几个窗口都包含在这个大的主窗口中. 主窗口不能进行任何计算任务的操作, 只用来进行一些整体的环境参数的设置. 它主要包括 6 个下拉菜单和 10 个按钮控件, 下面对 10 个按钮控件做简单介绍.各按钮控件说明如下:新建或打开一个 MATLAB 文件;剪切、复制或粘贴已选中的对象;撤消或恢复上一次操作 ;打开 Simulink 主窗口;打开 MATLAB 的帮助系统;设置当前路径.2. 命令窗口(Command Window)MATLAB 的命令窗口位于 MATLAB 桌面平台的右边方, 如图 1.3.1. 假如用户希望得到脱离桌面平台的几何独立命令窗口, 只要点击该命令窗口右上角的 ,就可获得如图 1.3.2 所示的命令窗口. 其中, “”为指令行提示符, 表示MATLAB 正处在准备状态. 当在提示符后输入一段运算式并按【enter】键后, MATLAB 将给出计算结果, 然后, 再次进入准备状态.图 1.3.2 MATLAB 的命令窗口【说明】 该命令窗口的外貌和操作方式与以前版本基本相同.