本书是基于MATLABR2015b产品族,以教程和实训紧密结合的形式,深入浅出地介绍了MATLAB的应用。教程部分比较系统地介绍了MATLAB的运行环境、MATLAB的基本运算、数据的可视化、MATLAB符号运算、MATLAB程序设计、MATLAB高级图形设计、Simulink仿真应用和线性控制系统的分析等内容,以先讲解后实例的方式,图文并茂,突出应用。实训部分与教程内容相互配合,先提出知识要点,然后按部就班指导操作,在操作中提出修改,后给出自我练习,方便学生循序渐进地上机操作,并对学生的掌握程度进行检验。本书可作为大学本科和专科有关课程的教材或教学参考书,也可作为MATLAB用户学习和参考书,在目前的MATLAB教材市场上具有明显特色。
MATLAB 是MathWorks 公司于1984 年开发的, 目前已经发展成国际上最流行、应用最广泛的科学与工程计算软件之一。MATLAB 集矩阵运算、数值分析、图形显示和仿真等于一体, 被广泛应用于自动控制、数学运算、计算机技术、图像信号处理、汽车工业和语音处理等行业, 也是国内外高校和研究部门进行科学研究的重要工具之一。近年来, 随着用户量的扩大, MathWorks 公司迅速地以每年两个新版本的速度进行升级。本书介绍的MATLABR2015b 产品族运算功能和速度更快, 很多工具箱的功能更加完善, Simulink 功能更强。
本书于2008 年推出第1 版, 是以当时流行的MATLAB 7. 3 版和Simulink 6. 5 版为平台编写的。本书出版后受到很多高校老师和学生的欢迎, 重印多次。因此于2013 年出版了第2版, 介绍的内容以MATLAB R2010a 产品族为平台, 适应了MATLAB 的版本升级。随着MATLAB 的发展, 版本升级为每年两个新版本, 因此再次对本书进行修订, 以MATLABR2015b 版本的环境界面进行修改, 并对内容进行了部分调整和增删。第1 章增加了Publish功能, 第4 章增加了Mupad Notebook, 第7 章增加了PID Tuner 等内容, 例题也进行了相应的调整。
本书分教程和实训两部分: 教程部分采用先讲解后实例的方式, 前6 章较系统地介绍了MATLAB R2015b 的基本功能和应用, 尤其是在第6 章的图形用户界面中详细地介绍了MATLABR2015b 各控件的使用方法, 第7 章介绍了Simulink 的仿真环境, 第8 章全面介绍了运用MATLAB 对线性控制系统的分析, 从实用的角度出发, 图文并茂。实训部分与教程内容相互配合, 先提出知识要点, 然后按部就班地指导操作, 并在操作中提出修改练习, 最后以自我练习题引导学生思考和检验, 引导学生逐步掌握各章的知识。为方便用户, 本书在书后配有例题索引, 所有的例题和教学课件都可以在网上下载, 在目前的MATLAB 教材市场中具有鲜明的特色。
本书内容介绍深入浅出, 有丰富的例题和详尽的操作指导, 不仅适合于本科、专科的教学, 也适合于广大科研人员的各类培训, 在毕业设计和研究生课程中都可以作为参考书。通过阅读本书的教程, 结合实训指导进行练习, 就能在较短的时间内基本掌握MATLAB 的应用技术。对于短课时课程(35 ~50 学时) 可以选择本书的第1、2、3、4、5 和7 章的内容授课, 对于长课时课程(50 ~70 学时) 可以讲授所有章节内容, 对于非控制专业可以使用前7 章的内容学习。
本书由南京师范大学曹弋主编, 南京师范大学张华参编, 并由南京师范大学王恩荣教授主审。
由于作者水平有限, 不当之处在所难免, 恳请读者批评指正。
主编E-mail: caoyi@ njnu. edu. cn编 者
前 言
第1 篇 MATLAB 教程 1
第1 章 MATLAB 概述 2
1. 1 MATLAB R2015b 简介 3
1. 1. 1 MATLAB 的系统结构 3
1. 1. 2 MATLAB 的特点 3
1. 1. 3 MATLAB 的工具箱 4
1. 2 MATLAB R2015b 的开发
环境 4
1. 2. 1 MATLAB R2015b 的环境
设置 5
1. 2. 2 工具栏 5
1. 2. 3 通用窗口 8
1. 3 MATLAB R2015b 的其他
管理 18
1. 3. 1 MATLAB 的文件格式 18
1. 3. 2 设置搜索路径 20
1. 4 一个简单的实例 22
1. 5 MATLAB 的发布功能 25
1. 6 MATLAB R2015b 的帮助
系统 28
1. 6. 1 使用帮助文档 29
1. 6. 2 使用帮助命令 30
习题 31
第2 章 MATLAB 的基本运算 33
2. 1 数据类型 33
2. 1. 1 常数和变量 34
2. 1. 2 整数和浮点数 35
2. 1. 3 复数 36
2. 2 矩阵和数组的算术运算 37
2. 2. 1 数组的创建 37
2. 2. 2 数组的操作 39
2. 2. 3 矩阵和数组函数 43
2. 2. 4 矩阵和数组的算术运算 46
2. 3 字符串 51
2. 3. 1 创建字符串 51
2. 3. 2 字符串函数 52
2. 4 日期和时间 56
2. 4. 1 日期和时间的表示格式 56
2. 4. 2 日期时间函数 56
2. 5 结构体和元胞数组 58
2. 5. 1 元胞数组 58
2. 5. 2 结构体 61
2. 6 表格型和分类型 64
2. 6. 1 表格型 64
2. 6. 2 分类型 65
2. 7 关系运算和逻辑运算 66
2. 7. 1 逻辑变量 66
2. 7. 2 关系运算 67
2. 7. 3 逻辑运算 67
2. 7. 4 运算符优先级 69
2. 8 数组的信息获取 69
2. 9 多项式 71
2. 9. 1 多项式求根和求值 71
2. 9. 2 多项式的算术运算 72
2. 9. 3 多项式的拟合与插值 74
习题 77
第3 章 数据的可视化 80
3. 1 二维绘图 80
3. 1. 1 绘图的一般步骤 80
3. 1. 2 基本绘图函数 81
3. 1. 3 多个图形的绘制 85
3. 1. 4 设置曲线绘制方式、坐标轴
和图形注释 87
3. 2 特殊图形和坐标的绘制 93
3. 2. 1 特殊图形绘制 93
3. 2. 2 特殊坐标轴图形绘制 99
目 录Ⅴ
3. 3 MATLAB 的图形窗口 100
3. 3. 1 图形窗口界面 100
3. 3. 2 图形的打印和输出 103
3. 4 基本三维绘图命令 105
3. 4. 1 三维曲线图 105
3. 4. 2 三维曲面图 105
3. 4. 3 设置视角和色彩 107
习题 109
第4 章 符号运算 111
4. 1 符号对象的创建和使用 111
4. 1. 1 创建符号对象 112
4. 1. 2 符号常量和符号变量 113
4. 1. 3 符号表达式 114
4. 1. 4 符号矩阵 114
4. 2 符号对象的运算 115
4. 2. 1 符号对象的基本运算 115
4. 2. 2 任意精度的算术运算 116
4. 3 符号表达式的变换 118
4. 3. 1 符号表达式中的自由符号
变量 118
4. 3. 2 符号表达式的化简 119
4. 3. 3 符号表达式的替换 120
4. 3. 4 计算反函数和复合函数 121
4. 3. 5 多项式符号表达式 122
4. 4 符号微积分、极限和级数 123
4. 4. 1 符号表达式的微积分 123
4. 4. 2 符号表达式的极限 125
4. 4. 3 符号表达式的级数 126
4. 5 符号积分变换 127
4. 5. 1 Fourier 变换 127
4. 5. 2 Laplace 变换 128
4. 5. 3 Z 变换 129
4. 6 符号方程的求解 130
4. 6. 1 代数方程的求解 130
4. 6. 2 微分方程的求解 131
4. 7 符号函数的可视化 132
4. 7. 1 符号函数计算器 132
4. 7. 2 泰勒级数计算器 132
4. 8 综合举例 133
4. 9 MuPAD Notebook 134
4. 9. 1 MuPAD Notebook 窗口 134
4. 9. 2 MuPAD 函数的使用 136
习题 137
第5 章 程序设计和M 文件 139
5. 1 程序控制 139
5. 1. 1 分支控制语句 139
5. 1. 2 循环控制语句 141
5. 1. 3 错误控制语句 144
5. 1. 4 流程控制命令 145
5. 2 M 文件结构 147
5. 2. 1 M 文件的一般结构 147
5. 2. 2 M 文件编辑/ 调试器
窗口 148
5. 2. 3 M 脚本文件和M 函数
文件 149
5. 3 函数的使用 151
5. 3. 1 主函数和子函数 151
5. 3. 2 函数的输入/输出参数 153
5. 3. 3 局部变量、全局变量和
静态变量 155
5. 3. 4 函数的工作过程和P 码
文件 156
5. 4 函数句柄和inline 对象 158
5. 4. 1 函数句柄 158
5. 4. 2 inline 对象 160
5. 5 函数绘图 161
5. 5. 1 fplot 命令 161
5. 5. 2 函数绘图命令 161
5. 6 数值分析 163
5. 6. 1 求最小值和过零点 163
5. 6. 2 数值积分 164
5. 6. 3 微分方程组数值求解 165
习题 166
第6 章 MATLAB 高级图形设计 169