第1章MATLAB简介 教学提示:MATLAB是目前在国际上被广泛接受和使用的科学与工程计算软件。虽 然Cleve Moler教授开发它的初衷是为了更简单,更快捷地解决矩阵运算,但MATLAB现 在的发展已经使其成为一种集数值运算、符号运算、数据可视化、园形界面设计、程序设 计、仿真等多种功能于一体的集成软件」 教学要求:了解MATLAB的发展历史、特点和功能,了解MATLAB工具箱的概念及 类型。重点掌MATLAB主界面各窗口的用途和操作方法。 1.1 MATLAB的发展沿革 20世纪70年代中后期,曾在密西根大学、斯坦福大学和新墨西哥大学担任数学与计 算机科学教授的Cleve Moler博士,为讲授矩阵理论和数值分析课程的需要,他和同事用 两个子程序库EISPACK和L PACK 这便是构思和开发MATLAB 一词是对Matrix Laboratory(矩阵实验室)的缩写,由此可看出MATLAB与 矩阵计算的渊源。MATLAB除了利用EISPACK和LINPACK两大软件包的子程序外,还 包含了用Fortran语言编写的、用于承担命令翻译的部分。 为进一步推动MATLAB的应用,在20世纪80年代初,John Little等人将先前的 MATLAB全部用C语言进行改写 形成了新一代的MATLAB 084年 Clev Moler John Little等 人成立MathWorks公司,并于同年向市场推出了第 个MATLAB的商业成 本。随着市场接受度的提高,其功能也不断增强,在完成数值计算的基础上,新增了数据 可视化以及与其他流行软件的接口等功能,并开始了对MATLAB工具箱的研究开发。 1993年,MathWorks公司推出了基于PC的以Vindows为操作系统平台的MATLAB4.0 版。1994年推出的4.2版,扩充了4.0版的功能,尤其在图形界面设计方面提供了新的 方法 1997年推出的MATLAB5.0版增加了更多的数据结构,如结构数组、细胞数组、多维 数组、对象、类等,使其成为一种更方便的编程语言。1999年初推出的MATLAB5.3版在 很多方面又进一步改进了MATLAB的功能。 2000年10月底推出了全新的MATLAB6.0正式版(Release12), 在核心数值算法、界 面设计、外部接口 应用桌面等诸多方面有了极大的改进。时隔2年 即2002年8月又拍 出了MATLAB65版,其操作界面进一步集成化,并开始运用JT加速技术,使运算速度 有了明显提高。 2004年7月,MathWorks公司又推出了MATLAB7.0版(Release14),其中集成了 MATLAB7.0编译器、Simulink6.0图形仿真器及很多工具箱,在编程环境、代码效率、数 据可视化、文件0等方面都进行了全面的升级
第 1 章 MATLAB 简介 教学提示:MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件。虽 然 Cleve Moler 教授开发它的初衷是为了更简单、更快捷地解决矩阵运算,但 MATLAB 现 在的发展已经使其成为一种集数值运算、符号运算、数据可视化、图形界面设计、程序设 计、仿真等多种功能于一体的集成软件。 教学要求:了解 MATLAB 的发展历史、特点和功能,了解 MATLAB 工具箱的概念及 类型。重点掌握 MATLAB 主界面各窗口的用途和操作方法。 1.1 MATLAB 的发展沿革 20 世纪 70 年代中后期,曾在密西根大学、斯坦福大学和新墨西哥大学担任数学与计 算机科学教授的 Cleve Moler 博士,为讲授矩阵理论和数值分析课程的需要,他和同事用 Fortran 语言编写了两个子程序库 EISPACK 和 LINPACK,这便是构思和开发 MATLAB 的 起点。MATLAB 一词是对 Matrix Laboratory(矩阵实验室)的缩写,由此可看出 MATLAB 与 矩阵计算的渊源。MATLAB 除了利用 EISPACK 和 LINPACK 两大软件包的子程序外,还 包含了用 Fortran 语言编写的、用于承担命令翻译的部分。 为进一步推动 MATLAB 的应用,在 20 世纪 80 年代初,John Little 等人将先前的 MATLAB 全部用 C 语言进行改写,形成了新一代的 MATLAB。1984 年,Cleve Moler 和 John Little 等人成立 MathWorks 公司,并于同年向市场推出了第一个 MATLAB 的商业版 本。随着市场接受度的提高,其功能也不断增强,在完成数值计算的基础上,新增了数据 可视化以及与其他流行软件的接口等功能,并开始了对 MATLAB 工具箱的研究开发。 1993年,MathWorks公司推出了基于PC的以Windows为操作系统平台的MATLAB 4.0 版。1994 年推出的 4.2 版,扩充了 4.0 版的功能,尤其在图形界面设计方面提供了新的 方法。 1997 年推出的 MATLAB 5.0 版增加了更多的数据结构,如结构数组、细胞数组、多维 数组、对象、类等,使其成为一种更方便的编程语言。1999 年初推出的 MATLAB 5.3 版在 很多方面又进一步改进了 MATLAB 的功能。 2000 年 10 月底推出了全新的 MATLAB 6.0 正式版(Release 12),在核心数值算法、界 面设计、外部接口、应用桌面等诸多方面有了极大的改进。时隔 2 年,即 2002 年 8 月又推 出了 MATLAB 6.5 版,其操作界面进一步集成化,并开始运用 JIT 加速技术,使运算速度 有了明显提高。 2004 年 7 月,MathWorks 公司又推出了 MATLAB 7.0 版(Release l4),其中集成了 MATLAB 7.0 编译器、Simulink 6.0 图形仿真器及很多工具箱,在编程环境、代码效率、数 据可视化、文件 I/O 等方面都进行了全面的升级
·2. 工AB基础及其应用教程 最近的一次版本更新是在2005年9月,Mathworks公司推出了MATLAB7.1版,包指 了新的时间序列分析工具,进一步加强了对Macintosh平台的支持。另外,此前的两次较 小范电的更新主要提供了一个Liux平台上的64位板本,并且优化了工作在Liux和 Macintosh平台上的其本线性代数子程序库, 显然,今天的MATLAB已经不再是仅仅解决矩阵与数值计算的软件,更是一种集数 值与符号运算、数据可视化图形表示与图形界面设计、程序设计、仿真等多种功能于一 的集成软件。观察由欧美引进的新版教材,MATLAB己经成为线性代数、数值分析计算、 数学建模、信号与系统分析、自动控制、数字信号处理、通信系统仿真等一批课程的基本 教学工具。而在国内,随若MATLAB在我国高校的推广和应用,MATLAB己经渐入人心。 1.2 MATLAB的特点及应用领域 MATLAB有两种基本的数据运算量:数组和矩阵,单从形式上,它们之间是不好区分 的。每一个量可能被当作数组,也可能被当作矩阵,这要依所采用的运算法则或运算函数 来定。在MATLAB中,数组与矩阵的运算法则和运算函数是有区别的。但不论是MATLAB 的数组还是MATLAB的矩阵,都己经改变了一般高级语言中使用数组的方式和解决矩阵 问题的方法。 在MATLAB中,矩阵运算是把矩阵视为一 个整体来进行,基本上与线性代数的处玛 方法一致。矩阵的加减乘除、乘方开方、指数对数等运算,都有一套专门的运算符或运算 函数。而对于数组,不论是算术的运算,还是关系或逻辑的运算,甚至于调用函数的运算, 形式上可以当作整体,有一套有别于矩阵的、完整的运算符和运算函数,但实质上却是针 对数组的每个元素施行的」 当MATLAB把矩阵(或数组)独立地当作 个运算量来对待后,向下可以兼容向量和标 量。不仅如此,矩阵和数组中的元素可以用复数作基本单元,向下可以包含实数集。这 是MATLAB区别于其他高级语言的根本特点。以此为基础,还可以概括出如下一些 MATLAB的特色。 1.语言简洁,编程效率高 因为MATLAB定义了专门用于矩阵运算的运算符,使得矩阵运算就像列出算式执行 标量运算一样简单,而且这些运算符本身就能执行向量和标量的多种运算。利用这些运算 符可使一般高级语言中的循环结构变成一个简单的MATLAB语句,再结合MATLAB丰亩 的库函数可使程序变得相当简短,几条语句即可代替数十行C语言或F rtan语言程序语句 的功能 2.交互性好,使用方便 在MATLAB的命今窗口中,给入一条命今,立即黄能看到核命今的执行结果,体现 了良好的交互性。交互方式减少了编程和调试程序的工作量,给使用者带来 了极大的方便 因为不用像使用C语言和Fortran语言那样,首先编写源程序,然后对其进行编译、连接, 待形成可执行文件后,方可运行程序得出结果。 2…
·2· MATLAB 基础及其应用教程 ·2· 最近的一次版本更新是在 2005 年 9 月,Mathworks 公司推出了 MATLAB 7.1 版,包括 了新的时间序列分析工具,进一步加强了对 Macintosh 平台的支持。另外,此前的两次较 小范围的更新主要提供了一个 Linux 平台上的 64 位版本,并且优化了工作在 Linux 和 Macintosh 平台上的基本线性代数子程序库。 显然,今天的 MATLAB 已经不再是仅仅解决矩阵与数值计算的软件,更是一种集数 值与符号运算、数据可视化图形表示与图形界面设计、程序设计、仿真等多种功能于一体 的集成软件。观察由欧美引进的新版教材,MATLAB 已经成为线性代数、数值分析计算、 数学建模、信号与系统分析、自动控制、数字信号处理、通信系统仿真等一批课程的基本 教学工具。而在国内,随着 MATLAB 在我国高校的推广和应用,MATLAB 已经渐入人心。 1.2 MATLAB 的特点及应用领域 MATLAB 有两种基本的数据运算量:数组和矩阵,单从形式上,它们之间是不好区分 的。每一个量可能被当作数组,也可能被当作矩阵,这要依所采用的运算法则或运算函数 来定。在 MATLAB 中,数组与矩阵的运算法则和运算函数是有区别的。但不论是 MATLAB 的数组还是 MATLAB 的矩阵,都已经改变了一般高级语言中使用数组的方式和解决矩阵 问题的方法。 在 MATLAB 中,矩阵运算是把矩阵视为一个整体来进行,基本上与线性代数的处理 方法一致。矩阵的加减乘除、乘方开方、指数对数等运算,都有一套专门的运算符或运算 函数。而对于数组,不论是算术的运算,还是关系或逻辑的运算,甚至于调用函数的运算, 形式上可以当作整体,有一套有别于矩阵的、完整的运算符和运算函数,但实质上却是针 对数组的每个元素施行的。 当 MATLAB 把矩阵(或数组)独立地当作一个运算量来对待后,向下可以兼容向量和标 量。不仅如此,矩阵和数组中的元素可以用复数作基本单元,向下可以包含实数集。这些 是 MATLAB 区别于其他高级语言的根本特点。以此为基础,还可以概括出如下一些 MATLAB 的特色。 1. 语言简洁,编程效率高 因为 MATLAB 定义了专门用于矩阵运算的运算符,使得矩阵运算就像列出算式执行 标量运算一样简单,而且这些运算符本身就能执行向量和标量的多种运算。利用这些运算 符可使一般高级语言中的循环结构变成一个简单的 MATLAB 语句,再结合 MATLAB 丰富 的库函数可使程序变得相当简短,几条语句即可代替数十行 C 语言或 Fortran 语言程序语句 的功能。 2. 交互性好,使用方便 在 MATLAB 的命令窗口中,输入一条命令,立即就能看到该命令的执行结果,体现 了良好的交互性。交互方式减少了编程和调试程序的工作量,给使用者带来了极大的方便。 因为不用像使用 C 语言和 Fortran 语言那样,首先编写源程序,然后对其进行编译、连接, 待形成可执行文件后,方可运行程序得出结果
第1章MATLAB简介 .3 3.强大的绘图能力,便于数据可视化 MATLAB不仅能绘制多种不同坐标系中的二维曲线,还能绘制三维曲面,体现了强 的绘图能力。正是这种能力为数据的图形化表示(即数据可视化)提供了有力工具,使数据 的展示更加形象生动,有利于揭示数据间的内在关系。 4.学科众多、领城广泛的工具箱 MATLAB工具箱(函数库)可分为两类:功能性工具箱和学科性工具箱。功能性工具箱 主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的 功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、控制工具箱、通 信工具箱、图像处理工具箱、小波工具箱等。 5.开放性好,易于扩充 除内部函数外,MATLAB的其他文件都是公开的、可读可改的源文件,体现了 MATLAB的开放性特点。用户可修改源文件和加入自己的文件,甚至构造自己的工具箱, 6.与C语言和Fortran语言有良好的接口 通过MEX文件,可以方便地调用C语言和Forn语言编写的函数或程序,完成 MATLAB与它们的混合编程,充分利用己有的C语言和Fortran语言资源。 MATLAB的应用领域十分广阔,典型的应用举例如下: )数据分村 (2)数值与符号计算 (3)工程与科学绘图 (4控制系统设计: (5)航天工业 6汽车工业 (生物医学工程 (8)语音处理: (9)图像与数字信号处理: (10)财务、金融分析: )建模、仿真及样机开发 (12)新 开究开发 (13)图形用户界面设计 1.3 MATLAB系统及工具箱 概括地讲,整个MATLAB系统由两部分组成,一是MATLAB基本部分,二是各种功 能性和学科性的工具箱,系统的强大功能由它们表现出来。 基本部分包括数组、矩阵运算,代数和超越方程的求解,数据处理和傅里叶变换,数 值积分等。 3
第 1 章 MATLAB 简介 ·3· ·3· 3. 强大的绘图能力,便于数据可视化 MATLAB 不仅能绘制多种不同坐标系中的二维曲线,还能绘制三维曲面,体现了强大 的绘图能力。正是这种能力为数据的图形化表示(即数据可视化)提供了有力工具,使数据 的展示更加形象生动,有利于揭示数据间的内在关系。 4. 学科众多、领域广泛的工具箱 MATLAB 工具箱(函数库)可分为两类:功能性工具箱和学科性工具箱。功能性工具箱 主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互的 功能。而学科性工具箱是专业性比较强的,如优化工具箱、统计工具箱、控制工具箱、通 信工具箱、图像处理工具箱、小波工具箱等。 5. 开放性好,易于扩充 除内部函数外,MATLAB 的其他文件都是公开的、可读可改的源文件,体现了 MATLAB 的开放性特点。用户可修改源文件和加入自己的文件,甚至构造自己的工具箱。 6. 与 C 语言和 Fortran 语言有良好的接口 通过 MEX 文件,可以方便地调用 C 语言和 Fortran 语言编写的函数或程序,完成 MATLAB 与它们的混合编程,充分利用已有的 C 语言和 Fortran 语言资源。 MATLAB 的应用领域十分广阔,典型的应用举例如下: (1) 数据分析; (2) 数值与符号计算; (3) 工程与科学绘图; (4) 控制系统设计; (5) 航天工业; (6) 汽车工业; (7) 生物医学工程; (8) 语音处理; (9) 图像与数字信号处理; (10) 财务、金融分析; (11) 建模、仿真及样机开发; (12) 新算法研究开发; (13) 图形用户界面设计。 1.3 MATLAB 系统及工具箱 概括地讲,整个 MATLAB 系统由两部分组成,一是 MATLAB 基本部分,二是各种功 能性和学科性的工具箱,系统的强大功能由它们表现出来。 基本部分包括数组、矩阵运算,代数和超越方程的求解,数据处理和傅里叶变换,数 值积分等
“4. T工,AB基础及其应用教程 工具箱实际是用MATLAB语句编成的、可供调用的函数文件集,用于解决某一方面 的专门问题或实现某一类新算法。MATLAB工具箱中的函数文件可以修改、增加或刑除 用户也可根据自己研究领域的需要自行开发工具箱并外挂到MATLAB中。Internet上有大 量的由用户开发的工具箱资源 到目前为止,MATLAB本身提供的工具箱有40多个,其中主要的有 ()生物信息科学工具箱(Bioinformatics Toolbox): (2)通信工具箱(Communication Toolbox): (3)挡制系统工具箱(Control System Toolbox) (④)曲线拟合工具箱(Curve Fitting Toolbox): ()数据采集工具箱(Data Acquisition Toob) (⑥滤波器设计工具箱Filter Design Toobx) (7)财政金融工具箱(Financial Toolbox): (8)频域系统辨识工具箱(Frequency System Identification Toolbox): (9)模糊逻辑工具箱Fuzzy Logic Toolbox): (IO)遗传算法和直接搜索工具箱(Genetic Alg hm and Direct Search Toolbox) (I)图像处理工具箱Image Processing Toolbox) (12)地图工具箱Mapping Toolbox) 13)模型预控制工只箱Model Predictive Control Toolbox): (14)神经网络工具箱(Neural Network Toolbox): (15)优化工具箱(Optimization To): dO偏微分方程工具箱Paia) (I7)信号处理工具箱(Signal Processing Toolbox)): (18)仿真工具箱(Simulink Toolbox): (19)统计工具箱(StatisticsToolbox): (20)符号运算工其箱(Symbolic math toolbox) (22) 小波工具箱Wavelet Toolbox) 1.4 MATLAB的安装和启动 当计算机的软硬件均达到MATLAB的安装要求后,只需将MATLAB的安装光盘放入 光驱,安装程序将会自动提示安装步暖。按所给提示做出洗怪,甲能顺利完成安装」 MATLAB对计算机软硬件的大致安装要求是 (1)Vindows20O0、Vindows XP的操作系统 (2)Pentium III、Pentium IV的CPU: (3)128MB左右的内存 (4)10GB左右的硬 (⑤)最好支持16位颜色,分辨率在800×600以上的显示卡和显示器: 4
·4· MATLAB 基础及其应用教程 ·4· 工具箱实际是用 MATLAB 语句编成的、可供调用的函数文件集,用于解决某一方面 的专门问题或实现某一类新算法。MATLAB 工具箱中的函数文件可以修改、增加或删除, 用户也可根据自己研究领域的需要自行开发工具箱并外挂到 MATLAB 中。Internet 上有大 量的由用户开发的工具箱资源。 到目前为止,MATLAB 本身提供的工具箱有 40 多个,其中主要的有: (1) 生物信息科学工具箱(Bioinformatics Toolbox); (2) 通信工具箱(Communication Toolbox); (3) 控制系统工具箱(Control System Toolbox); (4) 曲线拟合工具箱(Curve Fitting Toolbox); (5) 数据采集工具箱(Data Acquisition Toolbox); (6) 滤波器设计工具箱(Filter Design Toolbox); (7) 财政金融工具箱(Financial Toolbox); (8) 频域系统辨识工具箱(Frequency System Identification Toolbox); (9) 模糊逻辑工具箱(Fuzzy Logic Toolbox); (10) 遗传算法和直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox); (11) 图像处理工具箱(Image Processing Toolbox); (12) 地图工具箱(Mapping Toolbox); (13) 模型预测控制工具箱(Model Predictive Control Toolbox); (14) 神经网络工具箱(Neural Network Toolbox); (15) 优化工具箱(Optimization Toolbox); (16) 偏微分方程工具箱(Partial Differential Equation Toolbox); (17) 信号处理工具箱(Signal Processing Toolbox); (18) 仿真工具箱(Simulink Toolbox); (19) 统计工具箱(Statistics Toolbox); (20) 符号运算工具箱(Symbolic Math Toolbox); (21) 系统辨识工具箱(System Identification Toolbox); (22) 小波工具箱(Wavelet Toolbox)。 1.4 MATLAB 的安装和启动 当计算机的软硬件均达到 MATLAB 的安装要求后,只需将 MATLAB 的安装光盘放入 光驱,安装程序将会自动提示安装步骤,按所给提示做出选择,便能顺利完成安装。 MATLAB 对计算机软硬件的大致安装要求是: (1) Windows 2000、Windows XP 的操作系统; (2) Pentium III、Pentium IV 的 CPU; (3) 128MB 左右的内存; (4) 10GB 左右的硬盘; (5) 最好支持 16 位颜色,分辨率在 800×600 以上的显示卡和显示器;
第1章aLAB简介 5 (6光驱 成功安装后,MATLAB将在桌面放置一图标,双击该图标即可启动MATLAB并显示 MATLAB的工作窗口界面。 1.5 MATLAB操作界面 安装后首次启动MATLAB所得的操作界面如图1.1所示,这是系统默认的、未曾被用 户依据自身需要和喜好设置过的界面。 MATLAB的主界面是一个高度集成的工作环境,有4个不同职责分工的窗口。它们分 别是命令窗口(Command Window)、历史命令(Command History)窗口、当前目录(Current ctoy)窗口和工作空间(Wori pace)窗口。除此之外,MATLAB6.5之后的版本还添加 了开始按钮(Start). 菜单栏、ATLA娜 石回☒ Eile Edit Debug Resktop Hindow Help 工具栏一 D含光电息na韩时园?1e=队r1wrk□ Shorte四t5因Hon to hdd月hat':ey Varning:MATLAB Toolbox Path Cache is ype 'help toolbox_path_cache'for mo 命今窗口 To get started,select MATLAB Help 08-9-22 午:07一% =12:341 开始按钮 5tr回 图1.1 MATLAB默认的主界面 菜单栏和工具栏在组成方式和内容上与一般应用软件基本相同或相似,本章不准备给 出详细说明,待后面用到时自会明了。下面重点介绍MATLAB的5个窗口。 1.5.1命令窗口(Command Window) 在MATLAB默认主界面的右边是命令窗口。因为MATLAB至今未被汉化,所有窗口 名都用英文表示,所以“Command Window”即指命令窗口。 命令窗口顾名思义是接收命令输入的窗口,但实际上,可输入的对象除MATLAB命 令之外,还包括函数、表达式、语句以及M文件名或MEX文件名等,为叙述方便,这些 可输入的对象以下通称语句。 MATLAB的工作方式之一是:在命令窗口中输入语句,然后由MATLAB逐句解释执
第 1 章 MATLAB 简介 ·5· ·5· (6) 光驱。 成功安装后,MATLAB 将在桌面放置一图标,双击该图标即可启动 MATLAB 并显示 MATLAB 的工作窗口界面。 1.5 MATLAB 操作界面 安装后首次启动 MATLAB 所得的操作界面如图 1.1 所示,这是系统默认的、未曾被用 户依据自身需要和喜好设置过的界面。 MATLAB 的主界面是一个高度集成的工作环境,有 4 个不同职责分工的窗口。它们分 别是命令窗口(Command Window)、历史命令(Command History)窗口、当前目录(Current Directory)窗口和工作空间 (Workspace)窗口。除此之外,MATLAB 6.5 之后的版本还添加 了开始按钮(Start)。 菜单栏 历史命 令窗口 工作空间 窗口 开始按钮 工具栏 命令窗口 当前目录 设置区 图 1.1 MATLAB 默认的主界面 菜单栏和工具栏在组成方式和内容上与一般应用软件基本相同或相似,本章不准备给 出详细说明,待后面用到时自会明了。下面重点介绍 MATLAB 的 5 个窗口。 1.5.1 命令窗口(Command Window) 在 MATLAB 默认主界面的右边是命令窗口。因为 MATLAB 至今未被汉化,所有窗口 名都用英文表示,所以“Command Window”即指命令窗口。 命令窗口顾名思义是接收命令输入的窗口,但实际上,可输入的对象除 MATLAB 命 令之外,还包括函数、表达式、语句以及 M 文件名或 MEX 文件名等,为叙述方便,这些 可输入的对象以下通称语句。 MATLAB 的工作方式之一是:在命令窗口中输入语句,然后由 MATLAB 逐句解释执