21世纪全国应用型本科电子通信系列实用规划教材 MATLAB基础及其应用教程 主编周开利邓春晖 副主编李临生沈献博 参编伍小芹李爱华 王旭易家傅 北京大学出版社 PEKING UNIVERSITY PRESS
21 世纪全国应用型本科电子通信系列实用规划教材 MATLAB 基础及其应用教程 主 编 周开利 邓春晖 副主编 李临生 沈献博 参 编 伍小芹 李爱华 主 审 王 旭 易家傅 编 李 磊 张 军
前 言 MATLAB作为目前国际上最流行、应用最广泛的科学与工程计算软件,深受广大研究工 作者的欢迎,成为在校学生必须学习和堂提的基本软件,为此,许多高校开设了MATLAB 课程,广大师生迫切希望拥有一本适合MATLAB课程教学的优秀教材。北京大学出版社邀 请多所高校从事MATLAB教学的教 结合近年来的教学实践和应用开发经验编写了这本 《MATLAB基础及其应用教程》,希望能为MATLAB的教学提供一本适用且实用的优秀教 材,同时也可作为各类MATLAB培训和MATLAB相关应用开发的参考用书。 本教材基于MATLAB7.1版,讲解MATLAB的基础知识和核心内容。根据本课程“课 时少、内容多、应用广、实践性强”的特点,教材在内容编排上,尽量精简非必要的部分, 着重讲解MATLAB最基本的内容。 要学生掌握的 做到深入浅出,实例引导 进 解详实,既为教师讲授提供较大的选择余地,又为学生自主学习提供了方便 为使学生能 过练习和实际操作,在较短的时间内掌握MATLAB的基本内容及其应用技术,本教材还加 入了习题和上机实验。 本书凝结了集体的智慧,参与本书编写工作的有来自海南大学的周开利老师、伍小芹老 师、王旭老师、易家傅老师,以及厦门大学的邓春晖老师、 太原科技大学的李临生老师、南 阳师范学院 沈献博老师、烟台大学的李爱华老师 在编写过程中,周开利老师和邓春晖考 帅完成了对各章节的修改,伍小芹老师和王旭老师对文字进行了校对,最后由周开利老师统 编、定稿。 限于作者水平,本教材疏漏之处在所难免,恳请读者批评指正,有关意见可以发至主缩 的电子邮箱:kaili@hainu.edu.cn。 编者 2007年1月
前 言 MATLAB 作为目前国际上最流行、应用最广泛的科学与工程计算软件,深受广大研究工 作者的欢迎,成为在校学生必须学习和掌握的基本软件,为此,许多高校开设了 MATLAB 课程,广大师生迫切希望拥有一本适合 MATLAB 课程教学的优秀教材。北京大学出版社邀 请多所高校从事 MATLAB 教学的教师,结合近年来的教学实践和应用开发经验编写了这本 《MATLAB 基础及其应用教程》,希望能为 MATLAB 的教学提供一本适用且实用的优秀教 材,同时也可作为各类 MATLAB 培训和 MATLAB 相关应用开发的参考用书。 本教材基于 MATLAB 7.1 版,讲解 MATLAB 的基础知识和核心内容。根据本课程“课 时少、内容多、应用广、实践性强”的特点,教材在内容编排上,尽量精简非必要的部分, 着重讲解 MATLAB 最基本的内容。对需要学生掌握的内容,做到深入浅出,实例引导,讲 解详实,既为教师讲授提供较大的选择余地,又为学生自主学习提供了方便。为使学生能通 过练习和实际操作,在较短的时间内掌握 MATLAB 的基本内容及其应用技术,本教材还加 入了习题和上机实验。 本书凝结了集体的智慧,参与本书编写工作的有来自海南大学的周开利老师、伍小芹老 师、王旭老师、易家傅老师,以及厦门大学的邓春晖老师、太原科技大学的李临生老师、南 阳师范学院的沈献博老师、烟台大学的李爱华老师。在编写过程中,周开利老师和邓春晖老 师完成了对各章节的修改,伍小芹老师和王旭老师对文字进行了校对,最后由周开利老师统 编、定稿。 限于作者水平,本教材疏漏之处在所难免,恳请读者批评指正,有关意见可以发至主编 的电子邮箱:kaili@hainu.edu.cn。 编 者 2007 年 1 月
可 录 第1章MATLAB简介. 1 2.32矩阵元素的表示及相关操作.31 1.I MATLAB的发展沿革 23.3矩阵的创建 34 12 MATLAB的特点及应用领城 2 234矩阵的代数运算 13 MATLAB系统及工且箱 3 24 48 MATLAB的安装和启动 24.1多维数组元素的存储次序48 1.5 MATLAB操作界面 242多维数组的创建 .48 2.4.3数组的代致运算 .51 1.5.I命令窗▣(Command Window)..5 2.4.4数组的关系与逻组运算 54 1.5.2历史命令(Command 245数组和钜阵函数的通用形武5 Hiov)窗口. 9 25字符串运算 窗 25.1字符串变量与一维字符 ,11 数组 ..59 1.5.4工作空间(Workspace)窗口.12 252付字籍串的名顶提作60 155指助Help窗▣. 13 53一维字符数组 62 1.6 MATLAB的各种文件 14 17 AATLAB的搜陵路径 14 26小 62 搜索路径机制和搜索顺序…14 2.7习题 63 172设置搜索路径的方法 15 第3章MATLAB数值运算 65 1.8 MATLAB窗口操作命令. .16 31多项式 19小结 18 311多项式的表达和创建 .65 1.10习题 18 312名顶式的四叫云算 65 第2章MATLAB语言基础】 .20 313多项式求值和求根运算 68 2.1基木概含 20 21.MATLAB数据类型 32插值和拟合… .71 212常量与变 32.】多项式插值和拟合 .21 322最小二乘法拟合 77 2.1.3标量、向量、矩阵与数组…22 3.3数值微积分 70 2.14字符串. 23 331 2.15运算符 微分和差分 79 21.6命令、函数、表达式和语句26 33.1 牛顿-科茨系列数值积分 22向量运算 公式 81 3.4线性方程组的数值解 83 22.1向量的生成. .27 84 222向量的加减和数乘运算 34.1直接法 .28 223向量的点、义积运算 29 342迭代法 g5 2.3矩阵运算 31 35稀疏矩阵 23】矩阵元素的存储次序 31 35】稀疏矩阵的建立 90
目 录 第 1 章 MATLAB简介........................................ 1 1.1 MATLAB 的发展沿革........................... 1 1.2 MATLAB 的特点及应用领域............... 2 1.3 MATLAB 系统及工具箱....................... 3 1.4 MATLAB 的安装和启动....................... 4 1.5 MATLAB 操作界面............................... 5 1.5.1 命令窗口(Command Window)... 5 1.5.2 历史命令(Command History)窗口............................... 9 1.5.3 当前目录(Current Directory) 窗口.......................................... 11 1.5.4 工作空间(Workspace)窗口...... 12 1.5.5 帮助(Help)窗口........................ 13 1.6 MATLAB 的各种文件......................... 14 1.7 MATLAB 的搜索路径......................... 14 1.7.1 搜索路径机制和搜索顺序....... 14 1.7.2 设置搜索路径的方法 .............. 15 1.8 MATLAB 窗口操作命令..................... 16 1.9 小结 ...................................................... 18 1.10 习题 .................................................... 18 第 2 章 MATLAB 语言基础 ............................ 20 2.1 基本概念 .............................................. 20 2.1.1 MATLAB 数据类型................. 20 2.1.2 常量与变量 .............................. 21 2.1.3 标量、向量、矩阵与数组....... 22 2.1.4 字符串...................................... 23 2.1.5 运算符...................................... 23 2.1.6 命令、函数、表达式和语句... 26 2.2 向量运算 .............................................. 27 2.2.1 向量的生成 .............................. 27 2.2.2 向量的加减和数乘运算........... 28 2.2.3 向量的点、叉积运算 .............. 29 2.3 矩阵运算 .............................................. 31 2.3.1 矩阵元素的存储次序 .............. 31 2.3.2 矩阵元素的表示及相关操作... 31 2.3.3 矩阵的创建 .............................. 34 2.3.4 矩阵的代数运算....................... 40 2.4 数组运算............................................... 48 2.4.1 多维数组元素的存储次序....... 48 2.4.2 多维数组的创建....................... 48 2.4.3 数组的代数运算....................... 51 2.4.4 数组的关系与逻辑运算........... 54 2.4.5 数组和矩阵函数的通用形式... 57 2.5 字符串运算........................................... 59 2.5.1 字符串变量与一维字符 数组 .......................................... 59 2.5.2 对字符串的多项操作............... 60 2.5.3 二维字符数组........................... 62 2.6 小结 ...................................................... 63 2.7 习题 ...................................................... 63 第 3 章 MATLAB 数值运算............................. 65 3.1 多项式................................................... 65 3.1.1 多项式的表达和创建............... 65 3.1.2 多项式的四则运算................... 65 3.1.3 多项式求值和求根运算........... 68 3.1.4 多项式的构造........................... 70 3.2 插值和拟合........................................... 71 3.2.1 多项式插值和拟合................... 71 3.2.2 最小二乘法拟合....................... 77 3.3 数值微积分........................................... 79 3.3.1 微分和差分 .............................. 79 3.3.2 牛顿-科茨系列数值积分 公式 .......................................... 81 3.4 线性方程组的数值解........................... 83 3.4.1 直接法 ...................................... 84 3.4.2 迭代法 ...................................... 85 3.5 稀疏矩阵............................................... 89 3.5.1 稀疏矩阵的建立....................... 90
. MATLAB基础及其应用教程 3.5.2稀疏矩阵的存储 .92 5.6方程的解析解 149 3.5.3用稀疏矩阵求解线性方程组.93 56.1线性方程组的解析解」 149 36常微分方程的数值解 95 5.62非线性方程(组)的解析解…150 3.6.1欧拉法 96 56.3常微分方程(组)的解析解…152 龙格-库塔方法 99 5.7 小统 3,7小 .102 5.8习题 154 3.8习题 .102 第6章MATLAB程序设计 157 第4章结构数组与细胞数组 104 6.1M文件 .157 4.1结构数组 104 61.1局部变量与全局变量 .157 4L1结均数组的创建 104 6.1.2M文件的编辑与运行 158 412结构数组的操作 106 3脚本文 42细胞数组 113 6.1.4函数文件 160 42. 细胞数组的创建 .113 61.5函数调用 161 4.2.2细胞数组的操作 -115 6.2 MATLAB的程序控制结构 164 42.3结构细胞数组 123 621循环结构 164 4.3小结 124 622选择结构 169 44习避 124 62.3程序流的控制. 173 第5章MATLAB符号运算 128 6.3数据的轮入与输出 173 173 5.1符号对象及其表达方式 128 63 键盘输入语句(inpu 51.1符号常量和变 1 632屏幕输出语句(disp) -…174 6.33M数据文件的存储/加载 5.12符号表达式 130 (save load). .174 513符号5阵 131 52符号算术运算】 132 63.4 格式化文本文件的存储 符号对象的加诚 读取(fprintf/fs nf)... 174 635二进制数据文件的存储/ 522符号对象的乘陷 133 读取(fwrite/fread) 5.3独立变量与表达式化简, .134 174 53.1表达式中的独立变量 134 63.6数据文件行存储/读取 5.32表达式化简 135 (fgetl fgets) 175 54符号微积分运 6.4 MATLAB文件操作 ..175 5.4.1符号极限 .140 6.5而向对象编程. .177 5.42符号微分 141 65.1面向对象程序设计的基木 543符号积分 141 17 544符号Tayor级数展开 143 652面向对象的程序设计实例.…179 5.5符号积分变换 .144 6.6 MATLAB程序优化 181 5.5.1傅里叶变换及其反变换 182 .144 6.7程序调试 5.5.2拉普拉斯变换及其反变换145 小结 55.3乙变换及其反变换 147 6.9习题 183 VI
·VI· MATLAB 基础及其应用教程 ·VI· 3.5.2 稀疏矩阵的存储 ...................... 92 3.5.3 用稀疏矩阵求解线性方程组... 93 3.6 常微分方程的数值解........................... 95 3.6.1 欧拉法...................................... 96 3.6.2 龙格-库塔方法 ........................ 99 3.7 小结 .....................................................102 3.8 习题 .....................................................102 第 4 章 结构数组与细胞数组 ...................104 4.1 结构数组 .............................................104 4.1.1 结构数组的创建 .....................104 4.1.2 结构数组的操作 .....................106 4.2 细胞数组 .............................................113 4.2.1 细胞数组的创建 .....................113 4.2.2 细胞数组的操作 .....................115 4.2.3 结构细胞数组 .........................123 4.3 小结 .....................................................124 4.4 习题 .....................................................124 第 5 章 MATLAB 符号运算 ...........................128 5.1 符号对象及其表达方式......................128 5.1.1 符号常量和变量 .....................128 5.1.2 符号表达式 .............................130 5.1.3 符号矩阵 .................................131 5.2 符号算术运算 .....................................132 5.2.1 符号对象的加减 .....................132 5.2.2 符号对象的乘除 .....................133 5.3 独立变量与表达式化简......................134 5.3.1 表达式中的独立变量 .............134 5.3.2 表达式化简 .............................135 5.4 符号微积分运算..................................140 5.4.1 符号极限 .................................140 5.4.2 符号微分 .................................141 5.4.3 符号积分 .................................141 5.4.4 符号 Taylor 级数展开.............142 5.5 符号积分变换 .....................................144 5.5.1 傅里叶变换及其反变换..........144 5.5.2 拉普拉斯变换及其反变换......145 5.5.3 Z 变换及其反变换..................147 5.6 方程的解析解..................................... 149 5.6.1 线性方程组的解析解............. 149 5.6.2 非线性方程(组)的解析解...... 150 5.6.3 常微分方程(组)的解析解...... 152 5.7 小结 .................................................... 154 5.8 习题 .................................................... 154 第 6 章 MATLAB 程序设计........................... 157 6.1 M 文件................................................ 157 6.1.1 局部变量与全局变量............. 157 6.1.2 M 文件的编辑与运行............ 158 6.1.3 脚本文件 ................................ 159 6.1.4 函数文件 ................................ 160 6.1.5 函数调用 ................................ 161 6.2 MATLAB的程序控制结构................ 164 6.2.1 循环结构 ................................ 164 6.2.2 选择结构 ................................ 169 6.2.3 程序流的控制......................... 173 6.3 数据的输入与输出............................. 173 6.3.1 键盘输入语句(input).............. 173 6.3.2 屏幕输出语句(disp) ............... 174 6.3.3 M 数据文件的存储/加载 (save / load)............................. 174 6.3.4 格式化文本文件的存储/ 读取(fprintf / fscanf)............... 174 6.3.5 二进制数据文件的存储/ 读取(fwrite/ fread) .................. 174 6.3.6 数据文件行存储/读取 (fgetl / fgets)............................ 175 6.4 MATLAB 文件操作........................... 175 6.5 面向对象编程..................................... 177 6.5.1 面向对象程序设计的基本 方法 ........................................ 177 6.5.2 面向对象的程序设计实例..... 179 6.6 MATLAB 程序优化........................... 181 6.7 程序调试............................................. 182 6.8 小结 .................................................... 183 6.9 习题 .................................................... 183
第7章MATLAB数据可视化 185 第8章 交互式仿真集成环境 SIMULINK .214 7.1 二维图形 214 7.L.I MATLAB的图形窗口 186 &.ISIMULINK简介 &L】SIMULINK特点 214 7.12基本一雀图形绘制 187 7.13其他类型的二维图 189 8I2 SIMULINK的工作环境 7.14色彩和线型 191 81.3 SIMULINK仿真基本步操.216 7.1.5 坐标轴及标 82模型的创建 .217 82.】模型幅念和文件樱作 .217 7.16f图 -194 7.2三维图形 195 822模块操作 31g 221 7)1三维曲线图 196 823信号线操作 732三维曲面图 196 82 对模型 22 723 视角控制 825常用的Source信调 20 ,223 82.6常用的Sink信宿 230 724其他图形函数。 202 82】仿直的配置 235 73图像 205 82.8启动仿直 330 73.1图像的类别和显示 205 732图像的读写 207 8.3 SIMULINK仿真实伤 239 74 函数绘图 0 8.4小 85习题, 246 7.4. 一元函数绘图 20 7.42二元函数绘图 209 附录MATLAB上机实验 .247 7.5小结 212 7.6习原 212 .VI
目 录 ·VII· ·VII· 第 7 章 MATLAB 数据可视化.......................185 7.1 二维图形 .............................................185 7.1.1 MATLAB 的图形窗口............186 7.1.2 基本二维图形绘制 .................187 7.1.3 其他类型的二维图 .................189 7.1.4 色彩和线型 .............................191 7.1.5 坐标轴及标注 .........................193 7.1.6 子图.........................................194 7.2 三维图形 .............................................195 7.2.1 三维曲线图 .............................196 7.2.2 三维曲面图 .............................196 7.2.3 视角控制 .................................200 7.2.4 其他图形函数 .........................202 7.3 图像 .....................................................205 7.3.1 图像的类别和显示 .................205 7.3.2 图像的读写 .............................207 7.4 函数绘图 .............................................208 7.4.1 一元函数绘图 .........................208 7.4.2 二元函数绘图 .........................209 7.5 小结 .....................................................212 7.6 习题 .....................................................212 第 8 章 交互式仿真集成环境 SIMULINK ............................................ 214 8.1 SIMULINK 简介 ................................ 214 8.1.1 SIMULINK 特点.................... 214 8.1.2 SIMULINK 的工作环境 ........ 215 8.1.3 SIMULINK 仿真基本步骤 .... 216 8.2 模型的创建......................................... 217 8.2.1 模型概念和文件操作............. 217 8.2.2 模块操作 ................................ 218 8.2.3 信号线操作 ............................ 221 8.2.4 对模型的注释......................... 223 8.2.5 常用的 Source 信源................ 223 8.2.6 常用的 Sink 信宿 ................... 230 8.2.7 仿真的配置 ............................ 235 8.2.8 启动仿真 ................................ 239 8.3 SIMULINK 仿真实例 ........................ 239 8.4 小结 .................................................... 245 8.5 习题 .................................................... 246 附录 MATLAB 上机实验............................... 247
第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 逐句解释执