本书详细介绍了MATLAB R2007的全新操作界面,在此基础上详细介绍了MATLAB R2007的基本应用,主要包括基本运算方法、数组操作、矩阵运算、多项式与插值运算、M语言程序设计、图形绘制、GUI设计、Simulink建模与仿真等,并结合相应的实例说明了各部分功能的具体应用,可使学习者快速入门并熟练掌握各部分功能的应用。
本书结构清晰、内容翔实,可以作为理工科高等院校相关专业的教材,也可以作为用户学习 MATLAB 的参考书。
l由基础到提高,循序渐进地讲解各章节内容。
l从实用角度出发,详尽介绍MATLAB的常用功能与操作。
l结合大量实例,深入讲解各部分功能的应用。
◆MATLAB R2007入门
◆常用数学运算与操作
◆数组操作与矩阵代数运算
◆M语言程序设计流程
◆GUI用户界面设计
◆Simulink建模与仿真
前 言
MATLAB是当前最优秀的科学计算软件之一,也是许多科学领域中分析、应用和开发的基本工具。MATLAB的全称是 Matrix Laboratory,是由美国Mathworks公司于上世纪80年代推出的数学软件,最初它是一种专门用于矩阵运算的软件,经过多年的发展,MATLAB已经发展成为一种功能全面的软件,几乎可以解决科学计算中的所有问题。而且MATLAB编写简单、代码效率高等优点使得MATLAB在通信、信号处理、金融计算等领域都已经被广泛应用。
MATLAB R2007b为2007年的最新版本。新版本在原有版本的基础上,升级了Simulink等模块,增加了新功能,并支持Windows Vista等操作系统,进一步增强了系统的功能及稳定性。本书详细介绍了MATLAB R2007b的功能和使用方法,并且按照由浅入深的顺序安排章节,依次介绍了MATLAB R2007b的基本应用、数学计算功能及高级应用,如编程功能、绘图、GUI设计及Simulink建模等。通过详细介绍各功能中的常用函数、函数的使用方法,并讲解这些函数的具体应用,来使读者掌握这些功能。每一章的开始部分简要介绍本章的基本内容,并且指定学习目标,使读者能够明确学习任务。课后配有习题,课后习题紧扣每章内容,通过这些习题的训练,读者可以加深对MATLAB的了解,更加熟悉MATLAB的应用。通过阅读此书,读者可以快速、全面掌握MATLAB R2007b的使用方法,通过书中的实例及课后的习题训练,可以达到熟练应用和融会贯通。
本书内容共有13章。第1章介绍MATLAB的发展历史、基本功能特点和软件使用界面;第2章介绍MATLAB数学计算基本使用方法,包括MATLAB的常用数学函数、数据类型、操作函数及MATLAB脚本文件等,熟悉MATLAB的基本运算功能;第3章介绍MATLAB中的一维、二维和多维数组的创建、数组的基本运算、数组的常用操作;第4章介绍MATLAB中向量、数组的代数运算,包括矩阵运算、矩阵线性代数以及稀疏矩阵的相关操作;第5章介绍MATLAB的数学计算功能,包括函数运算、数据插值及微分方程求解等;第6章介绍MATLAB的其他数据结构,包括字符串、单元数组和结构体,为MATLAB编程及更多功能的实现打下基础;第7章介绍MATLAB程序设计,包括MATLAB程序设计的基本语法、规则及程序调试、程序优化和异常处理等;第8章介绍MATLAB的符号运算工具箱,包括功能和实现等;第9章介绍MATLAB绘图,绘图是MATLAB的一个重要特点,主要介绍基本的图形绘制、绘制图形的常用操作、特殊图形的绘制等内容;第10章介绍MATLAB句柄图形,为学习MATLAB图形用户接口(GUI)设计做好准备;第11章介绍MATLAB GUI设计;第12章介绍Simulink,主要是介绍Simulink建模的基本操作、Simulink的功能模块库以及S函数;第13章介绍MATLAB中的常用输入输出操作。
本书是多人智慧的结晶,除封面署名的作者外,参与编写和资料整理的人员还有王毅、姜辉、王丙峰、王国贤、周友文、赵梅、陈道允、汤杰、李秀竹、董宇飞 、王庆海 、李启阳、王玮、王立文等。由于时间较紧,书中难免有错误与不足之处,恳请专家和广大读者批评指正。在编写本书的过程中参考了相关文献,在此向这些文献的作者深表感谢。我们的信箱是huchenhao@263.net。
目 录
第1章 MATLAB R2007简介1
1.1 MATLAB简介1
1.1.1 初识 MATLAB1
1.1.2 MATLAB的基本功能2
1.1.3 获取 MATLAB的新信息3
1.2 MATLAB R2007b
用户界面概述3
1.2.1 启动 MATLAB R2007b4
1.2.2 MATLAB R2007b
的主界面4
1.2.3 MATLAB R2007b
的主菜单及其功能4
1.2.4 MATLAB R2007b的窗口9
1.3 MATLAB R2007b
的路径搜索11
1.3.1 MATLAB R2007b
的当前目录11
1.3.2 MATLAB R2007b
的路径搜索11
1.4 习题12
第2章 基本使用方法13
2.1 简单的数学运算13
2.1.1 最简单的计算器使用法13
2.1.2 MATLAB中的
常用数学函数14
2.1.3 MATLAB的数学运算符17
2.1.4 标点符号的使用19
2.2 常用的操作命令和快捷键20
2.3 MATLAB R2007b的
数据类型21
2.3.1 整数21
2.3.2 浮点数23
2.3.3 复数24
2.3.4 逻辑变量25
2.3.5 各种数据类型之间的转换28
2.3.6 数据类型操作函数29
2.3.7 变量30
2.3.8 系统预定义的特殊变量31
2.4 MATLAB R2007b的运算符32
2.4.1 关系运算符33
2.4.2 逻辑运算符33
2.4.3 运算符优先级34
2.5 MATLAB的一些基础函数35
2.5.1 位操作函数35
2.5.2 逻辑运算函数35
2.5.3 集合函数36
2.5.4 时间与日期函数37
2.6 MATLAB脚本文件39
2.6.1 脚本文件的用法39
2.6.2 块注释40
2.6.3 代码单元40
2.7 习题41
第3章 数组和数组运算42
3.1 数组的创建42
3.1.1 一维数组的创建42
3.1.2 二维数组的创建43
3.1.3 用其他方式生成数组44
3.2 数组寻址、查找和排序46
3.2.1 数组寻址与查找46
3.2.2 数组查找47
3.2.3 数组排序48
3.3 数组运算50
3.3.1 数组的数值运算50
3.3.2 数组的关系运算52
3.4 数组的扩展与裁剪53
3.5 多维数组58
3.5.1 多维数组的创建59
3.5.2 多维数组的其他运算61
3.6 数组的保存和装载62
3.7 习题62
第4章 矩阵的代数运算63
4.1 向量、矩阵及其运算63
4.1.1 向量的点乘、叉乘
和混合积63
4.1.2 矩阵的基本运算65
4.1.3 特殊矩阵生成66
4.1.4 向量和矩阵的范数69
4.1.5 矩阵的条件数69
4.2 矩阵和线性代数70
4.2.1 线性方程组70
4.2.2 矩阵的逆、秩和行列式71
4.2.3 矩阵分解73
4.2.4 矩阵指数函数和幂函数77
4.2.5 矩阵特征值、特征向量
及特征多项式79
4.2.6 矩阵的标准正交基80
4.2.7 矩阵奇异值分解81
4.3 稀疏型矩阵82
4.3.1 稀疏型矩阵的生成82
4.3.2 稀疏矩阵与满矩阵的
相互转化84
4.3.3 稀疏矩阵的操作87
4.4 习题89
第5章 MATLAB的数学运算91
5.1 多项式与插值91
5.1.1 多项式的表示91
5.1.2 多项式的四则运算92
5.1.3 多项式的其他运算93
5.1.4 数据插值95
5.2 函数运算99
5.2.1 函数的表示99
5.2.2 数学函数图像的绘制100
5.2.3 函数极值101
5.2.4 函数求解105
5.2.5 数值积分107
5.2.6 含参数函数的使用110
5.3 微分方程112
5.3.1 常微分方程初值问题112
5.3.2 常微分方程边值问题116
5.4 习题117
第6章 字符串、单元数组
和结构体119
6.1 字符串119
6.1.1 字符串的生成119
6.1.2 字符串的操作121
6.1.3 字符串与数值之间的转化125
6.2 单元数组127
6.2.1 单元数组的生成127
6.2.2 单元数组的操作128
6.3 结构体131
6.3.1 结构体的生成132
6.3.2 结构体的操作133
6.4 习题135
第7章 MATLAB R2007b
程序设计136
7.1 M文本文件介绍136
7.1.1 脚本M文件介绍137
7.1.2 函数M文件介绍138
7.2 函数流程控制138
7.2.1 顺序结构139
7.2.2 判断语句(if…else…end)139
7.2.3 分支语句142
7.2.4 循环语句144
7.2.5 try…catch…end语句146
7.2.6 其他流程控制函数147
7.3 函数变量148
7.4 函数类型149
7.4.1 匿名函数149
7.4.2 主函数150
7.4.3 子函数150
7.4.4 嵌套函数150
7.4.5 私有函数152
7.4.6 重载函数152
7.5 函数操作153
7.5.1 函数句柄153
7.5.2 函数参数154
7.5.3 函数调用158
7.6 MATLAB编程错误处理158
7.6.1 通过try-catch语句
检测错误158
7.6.2 对错误进行处理并且
从错误中恢复160
7.6.3 消息标志符162
7.6.4 警告处理165
7.7 程序设计的辅助函数165
7.7.1 表达式与函数的评估165
7.7.2 计时器函数167
7.8 调试程序168
7.8.1 直接调试法168
7.8.2 利用调试工具169
7.9 优化程序171
7.9.1 通过Profiler进行
程序运行分析171
7.9.2 通过tic、toc函数进行
程序运行分析174
7.9.3 程序优化的常用方法174
7.10 习题176
第8章 MATLAB的符号计算功能178
8.1 符号运算简介178
8.1.1 符号对象179
8.1.2 符号变量、表达式
的生成180
8.1.3 findsym函数和subs函数182
8.1.4 符号和数值之间的转化184
8.1.5 任意精度的计算185
8.1.6 创建符号方程186
8.2 符号表达式的化简与替换187
8.2.1 符号表达式的化简187
8.2.2 符号表达式的替换191
8.3 符号函数图形绘制192
8.3.1 符号函数曲线的绘制192
8.3.2 符号函数曲面网格图
及表面图的绘制195
8.3.3 等值线的绘制196
8.4 符号微积分197
8.4.1 符号表达式求极限197
8.4.2 符号微分198
8.4.3 符号积分199
8.4.4 级数求和200
8.4.5 Taylor级数200
8.5 符号线性代数201
8.5.1 基本代数运算201
8.5.2 线性代数运算202
8.5.3 矩阵的特征值分解203
8.5.4 Jordon标准型205
8.5.5 奇异值分解205
8.6 符号方程的求解206
8.6.1 代数方程的求解207
8.6.2 求解代数方程组207
8.6.3 微分方程的求解208
8.6.4 微分方程组的求解209
8.6.5 复合方程210
8.6.6 反方程211
8.7 符号积分变换211
8.7.1 符号傅立叶变换212
8.7.2 符号拉普拉斯变换213
8.7.3 符号Z变换215
8.8 MAPLE函数的调用216
8.8.1 maple函数的使用216
8.8.2 mfun函数的使用217
8.9 符号函数计算器217
8.9.1 单变量符号函数计算器218
8.9.2 Taylor逼近计算器220
8.10 习题221
第9章 MATLAB绘图224
9.1 MATLAB图形窗口224
9.1.1 图形窗口的创建与控制224
9.1.2 图形窗口的菜单栏228
9.1.3 图形窗口的工具栏233
9.2 基本图形的绘制234
9.2.1 二维图形的绘制234
9.2.2 三维图形的绘制239
9.2.3 图形的其他操作241
9.3 特殊图形的绘制243
9.3.1 条形图和面积图
(Bar and Area Graphs)244
9.3.2 饼状图(Pie Charts)247
9.3.3 直方图248
9.3.4 离散型数据图249
9.3.5 方向矢量图和
速度矢量图250
9.3.6 等值线的绘制
(Contour Plots)252
9.4 图形注释253
9.4.1 添加基本注释253
9.4.2 添加其他注释255
9.5 三维图形的高级控制264
9.5.1 查看图形264
9.5.2 图形的色彩控制270
9.5.3 光照控制272
9.6 习题273
第10章 句柄图形274
10.1 MATLAB的图形对象274
10.1.1 Root对象275
10.1.2 Figure对象275
10.1.3 Core对象276
10.1.4 Plot对象278
10.1.5 Annotation对象279
10.1.6 Group对象280
10.2 图形对象的属性280
10.3 图形对象属性值的
设置和查询281
10.3.1 属性值的设置282
10.3.2 对象的默认属性值282
10.3.3 属性值的查询284
10.4 习题285
第11章 GUI(图形用户接口)设计286
11.1 GUI简介286
11.1.1 GUI简介286
11.1.2 GUI的可选控件287
11.1.3 创建简单的GUI288
11.2 通过向导创建GUI界面295
11.2.1 启动GUIDE295
11.2.2 向GUI中添加控件296
12.2.3 创建菜单298
11.3 编写GUI代码302
11.3.1 GUI文件302
11.3.2 响应函数303
11.3.3 控件编程307
11.3.4 通过GUIDE创建
GUI实例307
11.4 通过程序创建GUI310
11.4.1 用于创建GUI的函数310
11.4.2 程序创建GUI示例313
11.5 习题322
第12章 Simulink的建模与仿真323
12.1 Simulink模型的建立323
12.1.1 Simulink的启动323
12.1.2 Simulink模型窗口
的建立324
12.1.3 Simulink模块间
连线处理325
12.1.4 Simulink模块
基本操作326
12.1.5 Simulink仿真设置327
12.2 Simulink模块库简介332
12.2.1 连续模块(Continuous)332
12.2.2 非连续模块
(Discontinuous)332
12.2.3 离散模块(Discrete)333
12.2.4 逻辑和位操作模块(Logic
and Bit Operations)334
12.2.5 查表模块
(Lookup Table)335
12.2.6 数学模块
(Math Operations)335
12.2.7 模型检测模块
(Model Verification)337
12.2.8 模型扩充模块
(Model-Wide Utilities)337
12.2.9 端口和子系统模块
(Port and Subsystems)338
12.2.10 信号属性模块
(Signal Attributes)339
12.2.11 信号线路模块
(Signal Routing)340
12.2.12 接收模块(Sinks)341
12.2.13 输入模块(Sources)341
12.2.14 用户自定义函数模块
(User-Defined
Functions)342
12.3 S函数设计与应用343
12.3.1 S函数的介绍343
12.3.2 S函数的调用343
12.3.3 S函数设计344
12.4 Simulink仿真应用实例347
12.5 习题349
第13章 文件和数据的导入与导出350
13.1 数据基本操作350
13.1.1 文件的存储350
13.1.2 数据导入351
13.1.3 文件的打开352
13.2 文本文件的读写353
13.3 低级文件I/O357
13.4 利用界面工具导入数据360
13.5 习题361
参考文献362