
本书基于MATLAB R2016b,重点介绍 MATLAB 的基础应用,包括利用MATLAB进行科学计算、编写程序、绘制图形等,以简练的语言和富有代表性的实例向读者介绍MATLAB的功能和使用方法,为初识 MATLAB 的用户提供指导。全书共分12章,对MATLAB的常用函数和功能进行了详细介绍,并通过实例及大量的图形进行了说明,包括MATLAB R2016b简介,MATLAB的基本使用方法,数组和向量,MATLAB的数学运算,字符串、单元数组和结构体,MATLAB编程,MATLAB的符号处理,MATLAB绘图,MATLAB句柄图形,MATLAB GUI设计,Simulink的建模与仿真,文件和数据的导入与导出。此外,本书每章最后都配有习题,辅助读者学习MATLAB。
本书结构清晰、内容详尽,可以作为理工科院校相关专业的教材,也可以作为MATLAB初中级用户学习的参考书。
本书的电子课件、实例源文件和习题答案可以到http://www.tupwk.com.cn网站下载。
MATLAB是当前最优秀的科学计算软件之一,也是许多科学领域中分析、应用和开发的基本工具。MATLAB的全称是 Matrix Laboratory,是由美国Mathworks公司于20世纪80年代推出的数学软件。最初它是一种专门用于矩阵运算的软件,经过多年的发展,MATLAB已经发展成为一种功能全面的软件,是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,几乎可以解决科学计算中的所有问题。而且MATLAB编写简单、代码效率高等优点使得MATLAB在工程计算与仿真、图像处理、通信、信号处理、金融计算等领域都得到十分广泛的应用。
MATLAB R2016b为2016年推出的最新版本,不仅包含了Simulink的许多新功能,而且简化了MATLAB应用的构建流程,有助于加快模型开发和仿真速度。本书详细介绍了MATLAB R2016b的功能和使用方法,并且按照由浅入深的顺序安排章节,依次介绍了MATLAB R2016b的基本应用以及数学计算功能及高级应用,如编程功能、绘图、GUI设计及Simulink建模等。通过详细介绍各功能中的常用函数及其使用方法,并讲解这些函数的具体应用,来使读者掌握这些功能。每一章的开始部分简要介绍该章的基本内容,并且指定学习目标,使读者能够明确学习任务。重点章节的结尾部分都有一个综合应用实例,以方便对该章内容综合知识的掌握和实际应用能力的提高。课后配有紧扣每章内容的习题。通过这些习题,读者可以加深对MATLAB的了解,更加熟悉MATLAB的应用。通过阅读此书,读者可以快速、全面地掌握MATLAB R2016b的使用方法。利用书中的实例及课后的习题训练,读者可以达到熟练应用和融会贯通的目的。
本书内容共有12章。第1章介绍MATLAB的发展历史、基本功能特点和软件使用界面;第2章介绍MATLAB数学运算的基本使用方法,包括MATLAB的常用数学函数、数据类型、操作函数及MATLAB脚本文件等,让你熟悉MATLAB的基本运算功能;第3章介绍MATLAB数组和向量,包括数组和向量的创建、数组的基本运算、数组和向量的操作;第4章介绍MATLAB的数学运算功能,包括数据插值、函数运算及微分方程求解等;第5章介绍MATLAB的其他数据结构,包括字符串、单元数组和结构体,为MATLAB编程及更多功能的实现打下基础;第6章介绍MATLAB编程,包括MATLAB程序设计的脚本文件、程序设计与开发、基本语法、语句结构及程序调试等;第7章介绍MATLAB的符号运算工具箱,包括功能和实现等;第8章介绍MATLAB绘图,绘图是MATLAB的一项重要功能,主要介绍基本的图形绘制、绘制图形的常用操作、特殊图形的绘制等内容;第9章介绍MATLAB句柄图形,为学习MATLAB图形用户界面(GUI)设计做好准备;第10章介绍MATLAB GUI设计;第11章介绍Simulink,主要介绍Simulink建模的基本操作、Simulink的功能模块库、常见Simulink模型以及S函数;第12章介绍MATLAB中常用的导入与导出操作。
除封面署名的作者外,参加本书编写的人员还有宋志辉、侯友山、裴淑娟、李辉、张宇怀、徐晓明、薛继军、岳殿召、陈添荣、侯铁国、刘军勇、李淑萍、尹志亮、陈光训、吴超群、郑玉祥、付君泽、黄怀春和靳廷喜等。在本书的编写过程中,参考了一些相关著作和文献,在此向这些著作和文献的作者深表感谢。由于作者水平所限,本书难免有不足之处,欢迎广大读者批评指正。我们的邮箱是huchenhao@263.net,电话是010-62796045。
本书对应的电子课件、习题答案和实例源文件可以到http://www.tupwk.com.cn网站下载。
作 者2017年6月
第1章 MATLAB R2016b简介 1
1.1 MATLAB简介 1
1.1.1 MATLAB概述 1
1.1.2 MATLAB的基本功能 2
1.1.3 MATLAB的更新 3
1.2 MATLAB R2016b的用户
界面 4
1.2.1 启动MATLAB R2016b 4
1.2.2 MATLAB R2016b的
主界面 4
1.2.3 MATLAB R2016b的带状
工具栏及功能区介绍 6
1.2.4 MATLAB R2016b的主要
窗口 11
1.3 MATLAB R2016b的路径
搜索 13
1.3.1 MATLAB R2016b的
当前路径 13
1.3.2 MATLAB R2016b的
路径搜索 14
1.4 习题 15
第2章 MATLAB的基本使用方法 16
2.1 简单的数学运算 16
2.1.1 最简单的计算器使用法 16
2.1.2 MATLAB中的常用数学
函数 17
2.1.3 MATLAB的数学运算符 20
2.1.4 标点符号的使用 21
2.2 常用的操作命令和快捷键 23
2.3 MATLAB的数据类型 24
2.3.1 整数 24
2.3.2 浮点数 26
2.3.3 复数 27
2.3.4 逻辑变量 28
2.3.5 各种数据类型之间的转换 31
2.3.6 数据类型操作函数 32
2.3.7 变量 33
2.3.8 系统预定义的特殊变量 34
2.4 MATLAB的运算符 35
2.4.1 关系运算符 36
2.4.2 逻辑运算符 36
2.4.3 运算符的优先级 37
2.5 MATLAB的一些基础函数 38
2.5.1 位操作函数 38
2.5.2 逻辑运算函数 39
2.5.3 集合函数 40
2.5.4 时间与日期函数 41
2.6 MATLAB脚本文件 42
2.6.1 脚本文件的用法 42
2.6.2 块注释 43
2.6.3 代码单元 44
2.7 习题 44
第3章 数组和向量 46
3.1 MATLAB数组 46
3.2 创建数组 47
3.3 数组操作 49
3.3.1 获取数组中的元素 49
3.3.2 各类型数组操作 49
3.4 MATLAB向量 57
3.4.1 创建向量 57
3.4.2 向量尺寸 59
3.4.3 向量索引 59
3.4.4 缩短向量 60
3.4.5 向量操作 61
3.5 习题 68
第4章 MATLAB的数学运算 70
4.1 多项式与插值 70
4.1.1 多项式的表示 70
4.1.2 多项式的四则运算 71
4.1.3 多项式的其他运算 72
4.1.4 数据插值 74
4.2 函数运算 78
4.2.1 函数的表示 78
4.2.2 数学函数图像的绘制 79
4.2.3 函数求极值 81
4.2.4 函数求解 84
4.2.5 数值积分 86
4.2.6 含参数函数的使用 89
4.3 微分方程 91
4.3.1 常微分方程初值问题 91
4.3.2 常微分方程边值问题 94
4.4 习题 96
第5章 字符串、单元数组和结构体 97
5.1 字符串 97
5.1.1 字符串的生成 97
5.1.2 字符串操作 99
5.1.3 字符串的比较、查找和
替换 100
5.1.4 字符串与数值之间的
转换 103
5.2 单元数组和结构体 105
5.2.1 单元数组 105
5.2.2 结构体 109
5.3 习题 113
第6章 MATLAB编程 114
6.1 脚本文件和编辑器 114
6.1.1 创建和使用脚本文件 115
6.1.2 有效使用脚本文件 116
6.1.3 有效使用命令窗口和
编辑器 117
6.1.4 调试脚本文件 117
6.1.5 编程风格 118
6.1.6 记录度量单位 118
6.1.7 使用脚本文件存储数据 119
6.1.8 控制输入和输出 119
6.1.9 用户输入 120
6.1.10 脚本文件示例 121
6.2 程序设计和开发 122
6.2.1 算法和控制结构 122
6.2.2 结构化程序设计 122
6.2.3 自顶向下的设计和
程序文档 123
6.2.4 伪代码 125
6.2.5 查找故障 127
6.2.6 开发大型程序 127
6.3 关系运算符和逻辑变量 128
6.3.1 logical类 129
6.3.2 logical函数 129
6.3.3 使用逻辑数组访问数组 130
6.4 逻辑运算符和函数 130
6.4.1 NOT运算 131
6.4.2 &和|运算符 131
6.4.3 异或函数 132
6.4.4 短路逻辑运算符 133
6.4.5 逻辑运算符和find函数 135
6.5 条件语句 136
6.5.1 if语句 137
6.5.2 else语句与elseif语句 139
6.5.3 字符串和条件语句 143
6.6 循环 145
6.6.1 for循环 145
6.6.2 break和continue语句 147
6.6.3 使用数组作为循环索引 147
6.6.4 隐含循环 148
6.6.5 使用逻辑数组作为掩码 150
6.6.6 while循环 151
6.7 switch结构 153
6.8 调试MATLAB程序 155
6.8.1 “编辑”功能区 155
6.8.2 “断点”功能区 156
6.8.3 “运行”功能区 157
6.8.4 设置首选项 158
6.8.5 查找故障 158
6.8.6 调试一个循环 160
6.9 习题 161
第7章 MATLAB的符号处理 162
7.1 符号运算简介 162
7.1.1 符号对象 162
7.1.2 符号变量和符号表达式的
生成 163
7.1.3 findsym函数和subs
函数 166
7.1.4 符号和数值之间的转换 167
7.1.5 任意精度的计算 168
7.1.6 创建符号方程 169
7.2 符号表达式的化简与替换 171
7.2.1 符号表达式的化简 171
7.2.2 符号表达式的替换 175
7.3 符号函数图形绘制 177
7.3.1 符号函数曲线的绘制 177
7.3.2 符号函数曲面网格图及
表面图的绘制 180
7.3.3 等值线的绘制 181
7.4 符号微积分 182
7.4.1 符号表达式求极限 182
7.4.2 符号微分 183
7.4.3 符号积分 184
7.4.4 级数求和 185
7.4.5 泰勒级数 185
7.5 符号方程的求解 186
7.5.1 代数方程的求解 186
7.5.2 求解代数方程组 187
7.5.3 微分方程的求解 188
7.5.4 微分方程组的求解 189
7.5.5 复合方程 189
7.5.6 反方程 190
7.6 符号积分变换 191
7.6.1 符号傅立叶变换 191
7.6.2 符号拉普拉斯变换 193
7.6.3 符号Z变换 194
7.7 mfun函数的使用 195
7.8 符号函数计算器 196
7.8.1 单变量符号函数计算器 196
7.8.2 泰勒逼近计算器 198
7.9 习题 199
第8章 MATLAB绘图 201
8.1 MATLAB图形窗口 201
8.1.1 图形窗口的创建与控制 201
8.1.2 图形窗口的菜单栏 204
8.1.3 图形窗口的工具栏 208
8.2 基本图形的绘制 209
8.2.1 二维图形的绘制 209
8.2.2 三维图形的绘制 213
8.2.3 图形的其他操作 215
8.3 特殊图形的绘制 217
8.3.1 条形图和面积图 217
8.3.2 饼状图 220
8.3.3 直方图 221
8.3.4 离散型数据图 222
8.3.5 方向矢量图和速度
矢量图 223
8.3.6 等值线的绘制 225
8.4 图形注释 226
8.4.1 添加基本注释 226
8.4.2 添加其他注释 228
8.5 三维图形的高级控制 235
8.5.1 查看图形 235
8.5.2 图形的色彩控制 240
8.5.3 光照控制 242
8.6 习题 243
第9章 MATLAB句柄图形 245
9.1 MATLAB的图形对象 245
9.1.1 Root对象 246
9.1.2 Figure对象 246
9.1.3 Core对象 247
9.1.4 Plot对象 248
9.1.5 Annotation对象 249
9.1.6 Group对象 251
9.2 图形对象的属性 251
9.3 图形对象属性值的设置和
查询 252
9.3.1 属性值的设置 252
9.3.2 对象的默认属性值 253
9.3.3 属性值的查询 254
9.4 习题 255
第10章 MATLAB GUI设计 256
10.1 GUI简介 256
10.1.1 GUI概述 256
10.1.2 GUI的可选控件 257
10.1.3 创建简单的GUI 257
10.2 通过向导创建GUI界面 263
10.2.1 启动GUIDE 263
10.2.2 向GUI中添加控件 264
10.2.3 创建菜单 266
10.3 编写GUI代码 268
10.3.1 GUI文件 268
10.3.2 响应函数 269
10.3.3 控件编程 273
10.3.4 GUIDE创建GUI实例 273
10.4 通过程序创建GUI 275
10.4.1 用于创建GUI的函数 276
10.4.2 程序创建GUI示例 279
10.5 习题 288
第11章 Simulink的建模与仿真 289
11.1 Simulink简介 289
11.2 Simulink模块库 291
11.2.1 连续(Continuous)模块 291
11.2.2 控制板(Dashboard)
模块 292
11.2.3 非连续(Discontinuous)
模块 293
11.2.4 离散(Discrete)模块 294
11.2.5 逻辑和位操作(Logic and
Bit Operations)模块 295
11.2.6 查表(Lookup Table)
模块 296
11.2.7 数学操作(Math
Operations)模块 297
11.2.8 模型检测(Model
Verification)模块 298
11.2.9 模型扩充(Model-
Wide Utilities)模块 299
11.2.10 端口和子系统(Ports &
Subsystems)模块 300
11.2.11 信号属性(Signal
Attributes)模块 301
11.2.12 信号线路(Signal
Routing)模块 302
11.2.13 接收(Sinks)模块 303
11.2.14 输入(Sources)模块 303
11.2.15 用户自定义函数
(User-Defined Functions)
模块 305
11.3 Simulink基本仿真建模 305
11.3.1 仿真框图 305
11.3.2 基本建模方法 307
11.3.3 Simulink基本仿真
建模实例 310
11.4 常见Simulink模型 312
11.4.1 线性状态-变量模型 312
11.4.2 分段线性模型 314
11.4.3 传递-函数模型 320
11.4.4 非线性状态-变量模型 323
11.4.5 子系统 325
11.5 S函数的设计与应用 330
11.5.1 S函数介绍 330
11.5.2 S函数的调用 331
11.5.3 S函数的设计 331
11.6 习题 334
第12章 文件和数据的导入与导出 335
12.1 数据的基本操作 335
12.1.1 文件的存储 335
12.1.2 数据导入 336
12.1.3 文件的打开 337
12.2 文本文件的读写 338
12.3 低级文件I/O 341
12.4 利用界面工具导入数据 344
12.5 习题 345
参考文献 346
本教程内容丰富、结构合理、思路清晰、语言简练流畅、示例翔实。每一章的引言部分概述了该章的学习目标和学习重点。在每一章的正文中,结合所讲述的关键技术和难点,穿插了大量极富实用价值的示例。每一章末尾都安排了有针对性的应用实例和练习题,练习题有助于培养读者的实际动手能力,增强对基本概念的理解和实际应用能力。
本教程内容丰富、结构合理、思路清晰、语言简练流畅、示例翔实。每一章的引言部分概述了该章的学习目标和学习重点。在每一章的正文中,结合所讲述的关键技术和难点,穿插了大量极富实用价值的示例。每一章末尾都安排了有针对性的应用实例和练习题,练习题有助于培养读者的实际动手能力,增强对基本概念的理解和实际应用能力。