1、 高等学校计算机教材 MATLAB 实用教程(第 4 版)郑阿奇 主 编 曹 弋 编 著 内 容 简 介 MATLAB R2015b 产品族是 MathWorks 公司目前最新开发科学与工程计算软件。本书以目前最新的MATLAB 为平台,比较系统地介绍了 MATLAB 环境、MATLAB 数值计算、MATLAB 符号计算、MATLAB计算可视化和 GUI 设计、MATLAB 程序设计、线性控制系统分析与设计、Simulink 仿真环境、MATLAB的高级应用等。本书内容主要分实用教程、习题和实验等几个部分。各部分深入浅出,相互配合,层次清楚。先讲解后实例;习题部分系统练习基本内容;实验先引导操
2、作后思考练习。附录部分包含习题参考答案、模拟测试题及其参考答案、例题索引和程序的调试介绍。同时,本书配备了教学课件和实例文件,方便老师授课和学生自学。需要者可在电子工业出版社的 http:/ 平台免费下载。本书可作为大学本科和专科有关课程的教材或教学参考书,也适于 MATLAB 用户学习和参考。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 MATLAB 实用教程/郑阿奇主编;曹弋编著4 版北京:电子工业出版社,2016.7 ISBN 978-7-121-29138-8.M.郑 曹.Matlab 软件高等学校教材.TP317 中国版本图书
3、馆 CIP 数据核字(2016)第 140327 号 策划编辑:程超群 责任编辑:郝黎明 印 刷:北京天竺颖华印刷厂 装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871 092 1/16 印张:25.75 字数:659.2 千字 版 次:2004 年 3 月第 1 版 2016 年 7 月第 4 版 印 次:2016 年 7 月第 1 次印刷 印 数:3 000 册 定价:55.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量
4、投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)88254577,。前 言 MATLAB(Matrix Laboratory)是 MathWorks 公司开发的,目前国际上最流行、应用最广泛的科学与工程计算软件。Simulink 基于 MATLAB 的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真。自推出 MATLAB R2006 版之后,在每年的上半年和下半年都会推出新版本,MathWorks 公司在 2015 年下半年推出了 MATLAB R2015b 产品族。2004 年,我们结合 MATLAB 教学和应用开发的经验,编写了 MATLAB 实用教程。推出
5、后,得到了高校教师、学生和广大读者的广泛认同,重印 7 次。2007 年和 2012 年,我们分别在第 1 版和第 2 版的基础上对版本进行了升级,对内容进行了调整和完善,又重印 17 次。目前仍在热销中,在此我们对大家的信任表示由衷的感谢!MATLAB 实用教程(第 4 版)以目前最先进的 MATLAB R2015b 作为平台,在继承第3 版基本框架的前提下,根据最新平台的功能和发展趋势,删除旧的,扩展新的,完善基本内容,使本书更实用。本书分实用教程部分、习题部分和实验等部分。各部分深入浅出,相互配合,层次清楚。先讲解后实例,先引导操作后思考练习。附录部分包含习题参考答案、模拟测试题及其参考
6、答案、例题索引和程序的调试介绍。本书配备了教学课件和实例文件,方便老师授课和学生自学。需要者可在电子工业出版社的 http:/ 平台免费下载。实际上,本书不仅适合于教学,也适合于 MATLAB 的各类培训和用 MATLAB 编程开发的用户学习和参考。只要阅读本书,结合上机操作指导进行练习和实习,就能在较短的时间内基本掌握 MATLAB 及其应用技术。本书由南京师范大学曹弋编写,南京师范大学郑阿奇统编、定稿。参加本系列书编写的还有徐文胜、丁有和、殷红先、陈瀚、陈冬霞、邓拼搏、高茜、刘博宇、彭作民、钱晓军、孙德荣、陶卫冬、吴明祥、王志瑞、徐斌、俞琰、严大牛、郑进、张为民、周何骏、于金彬、马骏、周怡
7、明、姜乃松、梁敬东等。由于作者水平有限,错误在所难免,敬请广大师生、广大读者批评指正。意见建议邮箱: 编 者 2016 年 3 月 V 目 录 第 1 部分 实用教程 第 1 章 MATLAB R2015b 环境.1 1.1 MATLAB 简介.1 1.1.1 MATLAB 工具箱.2 1.1.2 MATLAB 功能和特点.2 1.2 MATLAB R2015b 的环境 设置.3 1.2.1 MATLAB 的集成开发 环境.3 1.2.2 工具栏.4 1.3 常用窗口.8 1.3.1 命令窗口 (Command Window).8 1.3.2 当前目录浏览器窗口 (Current Folder
8、).12 1.3.3 工作空间窗口 (Workspace).14 1.3.4 历史命令窗口 (Command History).16 1.3.5 变量编辑器窗口 (Variable Editor).17 1.3.6 M 文件编辑/调试器窗口 (Editor/Debugger).18 1.3.7 代码分析报告窗口 (Code Analyzer Reporter).19 1.3.8 程序运行时间窗口 (Profiler).19 1.3.9 MATLAB R2015b 帮助.20 1.4 MATLAB R2015b 其他管理.22 1.4.1 MATLAB 用户文件 格式.22 1.4.2 设置搜索
9、路径.23 1.5 1 个实例.26 第 2 章 MATLAB 数值计算.30 2.1 变量和数据.30 2.1.1 数据类型.30 2.1.2 常数.32 2.1.3 变量.33 2.2 矩阵和数组.34 2.2.1 矩阵输入.34 2.2.2 矩阵元素.37 2.2.3 字符串.41 2.2.4 矩阵和数组运算.44 2.2.5 多维数组.55 2.3 日期和时间.58 2.3.1 日期和时间的表示格式.58 2.3.2 日期和时间函数.59 2.4 稀疏矩阵.60 2.4.1 稀疏矩阵的建立.60 2.4.2 稀疏矩阵的存储空间.62 2.4.3 稀疏矩阵的运算.63 2.5 多项式.6
10、3 2.5.1 多项式的求值、求根 和部分分式展开.63 2.5.2 多项式的乘除法 和微积分.66 2.5.3 多项式拟合和插值.67 2.6 元胞数组和结构数组.70 2.6.1 元胞数组.70 2.6.2 结构数组.73 2.7 数据分析.76 2.7.1 数据统计和相关分析.76 2.7.2 差分和积分.77 2.7.3 卷积和快速傅里叶变换.79 2.7.4 向量函数.81 VI 第 3 章 MATLAB 符号计算.83 3.1 符号表达式的建立.83 3.1.1 创建符号常量.84 3.1.2 创建符号变量和符号 表达式.85 3.1.3 符号矩阵.86 3.2 符号表达式的代数运
11、算.87 3.2.1 符号表达式的代数运算.87 3.2.2 符号数值任意精度控制 和运算.88 3.2.3 符号对象与数值对象 的转换.90 3.3 符号表达式的操作和转换.91 3.3.1 符号表达式中自由变量 的确定.91 3.3.2 符号表达式的化简.92 3.3.3 符号表达式的替换.94 3.3.4 求反函数和复合函数.95 3.3.5 符号表达式的转换.96 3.4 符号极限、微积分和级数 求和.97 3.4.1 符号极限.97 3.4.2 符号微分.98 3.4.3 符号积分.100 3.4.4 符号级数.101 3.5 符号积分变换.102 3.5.1 傅里叶变换及其反 变换
12、.102 3.5.2 拉普拉斯变换及其反 变换.103 3.5.3 Z 变换及其反变换.105 3.6 符号方程的求解.106 3.6.1 代数方程.106 3.6.2 符号常微分方程.107 3.7 符号函数的可视化.108 3.7.1 符号函数的绘图命令.108 3.7.2 图形化的符号函数 计算器.110 第 4 章 MATLAB 计算的可视化 和 GUI 设计.112 4.1 二维曲线的绘制.112 4.1.1 基本绘图命令.113 4.1.2 绘制曲线的一般步骤.117 4.1.3 多个图形绘制的方法.118 4.1.4 曲线的线形、颜色和数据 点形.120 4.1.5 设置坐标轴和
13、文字 标注.121 4.1.6 交互式图形命令.125 4.2 MATLAB 的特殊图形绘制.126 4.2.1 条形图.127 4.2.2 面积图和实心图.128 4.2.3 直方图.129 4.2.4 饼形图.130 4.2.5 离散数据图.131 4.2.6 对数坐标和极坐标图.131 4.2.7 等高线图.133 4.2.8 复向量图.133 4.3 MATLAB 的三维图形绘制.134 4.3.1 绘制三维线图命令.134 4.3.2 绘制三维网线图 和曲面图.135 4.3.3 立体图形与图轴 的控制.137 4.3.4 色彩的控制.139 4.4 图形绘制工具.142 4.5 对
14、话框.143 4.6 句柄图形.146 4.6.1 句柄图形体系.146 4.6.2 图形对象的操作.147 4.7 用户图形界面设计.151 4.7.1 可视化的界面环境.151 4.7.2 菜单.152 4.7.3 控件.154 4.7.4 对象对齐工具、属性编辑器 和对象浏览器.156 VII 4.7.5 回调函数.157 4.8 图形文件转储.159 第 5 章 MATLAB 程序设计.160 5.1 程序流程控制.160 5.1.1 forend 循环结构.160 5.1.2 whileend 循环结构.161 5.1.3 ifelseend 条件转移 结构.162 5.1.4 sw
15、itchcase 开关结构.163 5.1.5 trycatchend 试探 结构.164 5.1.6 流程控制语句.165 5.1.7 循环结构与动画.167 5.2 M 文件.169 5.2.1 M 文件编辑器.169 5.2.2 M 脚本文件.170 5.2.3 M 函数文件.171 5.3 函数调用和参数传递.173 5.3.1 子函数和私有函数.173 5.3.2 局部变量和全局变量.174 5.3.3 函数的参数.175 5.3.4 程序举例.178 5.4 利用函数句柄执行函数.182 5.4.1 函数句柄的创建.182 5.4.2 用 feval 命令执行函数.183 5.5
16、利用泛函命令进行数值 分析.184 5.5.1 求极小值.184 5.5.2 求过零点.185 5.5.3 数值积分.187 5.5.4 微分方程的数值解.187 5.6 内联函数.189 5.7 M 文件性能的优化和加速.190 5.7.1 M 文件性能优化.190 5.7.2 P 码文件.191 第 6 章 线性控制系统分析与设计.193 6.1 线性系统的描述.193 6.1.1 状态空间描述法.193 6.1.2 传递函数描述法.195 6.1.3 零极点描述法.195 6.1.4 离散系统的数学描述.196 6.2 线性系统模型之间的转换.198 6.2.1 连续系统模型之间 的转换.198 6.2.2 连续系统与离散系统之间 的转换.201 6.2.3 模型对象的属性.203 6.3 结构框图的模型表示.205 6.4 线性系统的时域分析.209 6.4.1 零输入响应分析.209 6.4.2 脉冲响应分析.210 6.4.3 阶跃响应分析.212 6.4.4 任意输入的响应.213 6.4.5 系统的结构参数.215 6.5 线性系统的频域分析.218 6.5.1 频域特