第Ⅰ篇 基础知识 3
第1章 认识MATLAB 3
1.1 MATLAB到底有多厉害 3
1.2 MATLAB概述 3
1.2.1 MATLAB的语言特点及应用领域 3
1.2.2 MathWorks公司及其产品概述 4
1.2.3 MATLAB的语言特点 5
1.2.4 MATLAB的组成 5
1.2.5 MATLAB R2016b新增功能 6
1.3 MATLAB的行业应用 7
1.4 初次使用MATLAB 8
1.4.1 直接使用MATLAB命令 8
1.4.2 一个简单的MATLAB程序 10
第2章 MATLAB基础 14
2.1 MATLAB R2016b的安装与启动 14
2.1.1 对计算机配置的要求 14
2.1.2 安装MATLAB 14
2.1.3 启动和退出MATLAB 17
2.1.4 卸载MATLAB 18
2.2 MATLAB R2016b的目录结构 18
2.3 MATLAB R2016b的工作界面 18
2.3.1 菜单工具栏 19
2.3.2 命令行窗口 20
2.3.3 工作区 21
2.3.4 命令历史记录窗口 22
2.4 MATLAB R2016b的帮助系统 22
2.4.1 使用帮助浏览器窗口 22
2.4.2 使用帮助命令 23
2.4.3 演示帮助 24
2.5 疑难解答 24
第Ⅱ篇 语法基础 27
第3章 MATLAB的基本使用 27
3.1 MATLAB的通用命令 27
3.2 MATLAB的文件管理 28
3.2.1 当前文件夹浏览器和路径管理器 28
3.2.2 搜索路径及其设置 29
3.3 MATLAB表达式中的变量和关键字 30
3.3.1 变量 30
3.3.2 关键字 30
3.4 MATLAB的数据类型 31
3.4.1 数值 31
3.4.2 逻辑型数值 34
3.4.3 字符串 35
3.4.4 单元数组 35
3.4.5 结构体 35
3.4.6 日期和时间 37
3.5 MATLAB的运算符和基本运算 38
3.5.1 算术运算符 38
3.5.2 关系运算符 39
3.5.3 逻辑运算符 39
3.5.4 运算符优先级 40
3.6 MATLAB的标点符号 40
3.7 MATLAB的脚本文件 42
3.8 疑难解答 42
第4章 MATLAB编程基础 44
4.1 M文件 44
4.1.1 概述 44
4.1.2 函数变量 45
4.1.3 函数参数 45
4.1.4 函数句柄 48
4.1.5 函数类型 49
4.2 MATLAB的程序控制结构 51
4.2.1 条件控制语句 51
4.2.2 循环控制语句 53
4.2.3 误差控制语句 54
4.2.4 其他流程控制语句 55
4.3 文件操作 57
4.3.1 文件的打开与关闭 58
4.3.2 文件I/O 59
4.4 MATLAB程序优化 62
4.4.1 通过Profiler进行程序运行分析 62
4.4.2 通过tic函数和toc函数进行程序运行分析 64
4.4.3 程序优化的常用方法 64
4.5 程序调试 65
4.5.1 直接调试法 66
4.5.2 利用调试工具进行的调试法 66
4.6 疑难解答 67
第5章 MATLAB的数组与矩阵操作 67
5.1 数组(矩阵)的生成及初等运算 70
5.1.1 数组(矩阵)的生成 70
5.1.2 冒号表达式 71
5.2 基本的数组操作 71
5.2.1 数组元素的寻址 71
5.2.2 数组元素的查找 72
5.2.3 数组元素的排序 72
5.2.4 矩阵转置 73
5.2.5 矩阵重排 73
5.2.6 矩阵的拆分 74
5.2.7 矩阵的连接 76
5.2.8 矩阵变换 77
5.3 数组的运算 78
5.3.1 数值运算 78
5.3.2 逻辑运算 78
5.3.3 关系运算 79
5.3.4 向量的点积、叉积、混合积 79
5.3.5 范数 80
5.4 数组的保存和载入 81
5.5 矩阵运算 81
5.5.1 基本运算 81
5.5.2 点运算 85
5.6 矩阵分析 86
5.6.1 常用矩阵 86
5.6.2 矩阵的特征参数 89
5.7 稀疏矩阵 92
5.7.1 稀疏矩阵的生成 92
5.7.2 转换成满矩阵 93
5.7.3 对非零元素进行操作 93
5.7.4 特殊的稀疏矩阵 94
5.8 疑难解答 95
第6章 常用数学函数 98
6.1 初等数学函数 98
6.1.1 三角函数 98
6.1.2 指数和对数函数 99
6.1.3 复数处理函数 100
6.1.4 离散函数 101
6.2 特殊数学函数 103
6.3 综合应用 105
6.4 疑难解答 106
第7章 符号运算 108
7.1 符号变量、符号表达式和符号方程的生成 108
7.1.1 使用sym函数生成符号变量和符号表达式 108
7.1.2 使用syms函数定义符号变量和符号表达式 109
7.1.3 符号方程的生成 109
7.2 符号变量的基本操作 109
7.2.1 Findsym函数:寻找符号变量 109
7.2.2 符号运算的精度确定 110
7.3 符号表达式的基本操作 111
7.3.1 四则运算 111
7.3.2 符号多项式的因式分解与展开 111
7.3.3 提取有理式的分子和分母 113
7.3.4 符号表达式的化简 113
7.3.5 符号表达式的替换 114
7.3.6 反函数的求解 114
7.3.7 复合函数 115
7.4 符号矩阵的生成和运算 116
7.4.1 符号矩阵的生成 116
7.4.2 符号矩阵的运算 117
7.5 符号微积分 118
7.5.1 符号极限 118
7.5.2 符号微分 119
7.5.3 符号积分 120
7.6 符号积分变换 121
7.6.1 Fourier变换及其逆变换 121
7.6.2 Laplace变换及其逆变换 122
7.6.3 z变换及其逆变换 123
7.7 符号方程的求解 125
7.7.1 代数方程求解 125
7.7.2 微分方程求解 126
7.8 综合应用 127
7.9 疑难解答 128
第8章 数值运算 130
8.1 多项式计算 130
8.1.1 多项式的表示 130
8.1.2 多项式的运算 130
8.2 极限运算 133
8.3 线性方程组求解 133
8.3.1 利用左除运算求解线性方程组 133
8.3.2 利用矩阵求逆求解线性方程组 134
8.3.3 利用矩阵分解求解线性方程组 135
8.4 非线性方程组求解 138
8.4.1 单变量非线性方程的求解 138
8.4.2 非线性方程组的求解 138
8.5 数值积分与微分 139
8.5.1 数值微分 139
8.5.2 数值积分 141
8.6 综合应用 144
8.7 疑难解答 145
第9章 数据分析 150
9.1 插值与拟合 150
9.1.1 插值 150
9.1.2 拟合 151
9.2 最优化计算 152
9.2.1 优化问题的求解过程 152
9.2.2 线性规划 154
9.2.3 非线性规划 157
9.2.4 最小二值问题 163
9.3 概率统计与分析 166
9.3.1 统计量操作 166
9.3.2 统计分析 167
9.3.3 概率密度与分布 169
9.4 小波分析 170
9.4.1 小波分析基础 170
9.4.2 去噪与压缩 175
9.5 综合应用 180
9.6 疑难解答 182
第10章 图形句柄 184
10.1 句柄对象 184
10.2 对象属性 185
10.3 图形句柄创建实例 186
10.4 综合应用 191
10.5 疑难解答 192
第Ⅲ篇 数据可视化 197
第11章 二维数据可视化 197
11.1 图形绘制基础 197
11.1.1 离散数据及离散函数 197
11.1.2 连续函数 197
11.1.3 图形绘制的基本步骤 198
11.1.4 图形绘制示例 198
11.2 二维图形绘制 199
11.2.1 plot指令 199
11.2.2 格栅 202
11.2.3 文字说明 203
11.2.4 线型、标记和颜色 204
11.2.5 坐标轴设置 205
11.2.6 图形叠绘 208
11.2.7 子图绘制 208
11.2.8 交互式绘图 209
11.2.9 双坐标轴绘图 210
11.2.10 fplot绘图指令 211
11.2.11 ezplot绘图指令 212
11.2.12 特殊坐标轴绘图 213
11.3 二维特殊图形函数 215
11.3.1 柱状图 215
11.3.2 面积图 216
11.3.3 实心图 217
11.3.4 向量图 218
11.3.5 饼图 219
11.3.6 直方图 220
11.4 疑难解答 220
第12章 三维数据可视化 222
12.1 三维图形绘制 222
12.1.1 曲线图绘制 222
12.1.2 三维网线图绘制 223
12.1.3 曲面图的绘制 225
12.2 三维隐函数绘图 226
12.3 三维图形的修饰处理 228
12.3.1 三维图形的视点处理 228
12.3.2 色彩处理 229
12.3.3 光照处理 230
12.4 疑难解答 231
第Ⅳ篇 编程设计 235
第13章 图形用户界面设计 235
13.1 使用GUIDE创建GUI 235
13.1.1 GUIDE编辑界面简介 235
13.1.2 菜单设计实例 236
13.1.3 包含控件的GUI设计实例 237
13.1.4 M文件和FIG文件 241
13.2 GUI编程 241
13.3 实例解析 243
13.3.1 实例1:peaks函数的轮廓图绘制 243
13.3.2 实例2:用控件控制图形的属性 246
13.3.3 实例3:TeapotdemoGUI的制作过程剖析 251
13.4 疑难解答 254
第14章 Simulink仿真基础 256
14.1 Simulink简介 256
14.2 一个简单的Simulink仿真示例 256
14.3 Simulink的基本模块 259
14.3.1 Simulink的基本模块及其功能 259
14.3.2 常用模块的参数和属性设置 261
14.4 Simulink的基本操作 264
14.4.1 Simulink的文件操作 264
14.4.2 模块的操作 264
14.4.3 信号线的操作 265
14.4.4 给模型添加文本注释 266
14.5 复杂系统的仿真 266
14.5.1 仿真的设置 267
14.5.2 连续系统仿真示例 269
14.5.3 离散系统仿真示例 270
14.6 子系统与封装 272
14.6.1 建立子系统 272
14.6.2 子系统的封装 273
14.7 疑难解答 276
第15章 文件读取I/O 280
15.1 文件夹的管理 280
15.1.1 当前文件夹管理 280
15.1.2 创建文件夹 280
15.1.3 删除文件夹 280
15.1.4 复制或移动文件夹 281
15.2 打开和关闭文件 281
15.2.1 打开文件 281
15.2.2 关闭文件 281
15.3 工作区文件—MAT文件 282
15.3.1 输出数据到MAT文件 282
15.3.2 读取MAT文件—load函数 283
15.4 读/写二进制文件 284
15.4.1 写二进制文件 285
15.4.2 读二进制文件 286
15.5 格式化读写文件 286
15.5.1 格式化读取 286
15.5.2 格式化写入 287
15.6 文件内的位置控制 288
15.7 综合应用 289
15.8 疑难解答 290
第16章 MATLAB编译器 292
16.1 MATLAB编译器概述 292
16.2 编译器的安装与配置 292
16.2.1 编译器的安装 292
16.2.2 编译器的配置 292
16.3 编译命令mcc 293
16.4 编译生成独立运行程序 293
16.4.1 编译M文件 294
16.4.2 编译图形绘制M文件 294
16.4.3 由含feval指令的M文件生成EXE文件 296
16.5 综合应用 297
16.6 疑难解答 298
第17章 外部接口应用 300
17.1 接口概述 300
17.1.1 MEX文件介绍 300
17.1.2 MAT文件介绍 300
17.1.3 MATLAB计算引擎介绍 300
17.2 基于C/C+++语言的MEX文件应用 301
17.2.1 MEX文件结构 301
17.2.2 创建C/C++++MEX文件 302
17.2.3 调试C/C++++语言MEX程序文件 303
17.3 基于C/C+++语言的MAT文件应用 303
17.3.1 使用C/C++++语言读取和创建MAT文件的过程 303
17.3.2 使用C/C++++语言读取MAT文件示例 304
17.3.3 使用C/C++++语言创建MAT文件示例 306
17.4 基于C/C+++语言的计算引擎应用 310
17.4.1 MATLAB引擎库函数 310
17.4.2 创建MATLAB引擎调用源程序 311
17.5 MATLAB中Java语言的调用 315
17.5.1 Java接口使用 315
17.5.2 Java接口编程应用示例 316
17.6 综合应用 317
17.7 疑难解答 320
第Ⅴ篇 综合实战 323
第18章 MATLAB在信号与系统中的应用 323
18.1 典型连续时间信号描述及运算 323
18.1.1 典型连续信号波形的绘制 323
18.1.2 连续时间信号的运算 325
18.2 线性系统时域分析 326
18.2.1 连续时间信号卷积 326
18.2.2 线性系统时域分析 328
18.3 连续系统频域分析 330
18.4 连续时间系统S域零极点分析 332
18.4.1 零极点分布与系统稳定性 332
18.4.2 零极点分布与系统冲激响应时域特性 333
18.4.3 由连续系统零极点分布分析系统的频率特性 335
18.5 综合应用 337
18.6 疑难解答 338
第19章 MATLAB在数字信号处理中的应用 338
19.1 离散时间信号的MATLAB实现 342
19.1.1 正弦序列 342
19.1.2 指数序列 342
19.1.3 单位抽样序列 344
19.1.4 单位阶跃序列 345
19.2 基于MATLAB的快速Fourier变换 346
19.2.1 快速Fourier变换的用法 346
19.2.2 运用FFT进行简单滤波 348
19.3 IIR数字滤波器的设计 349
19.3.1 模拟原型滤波器 349
19.3.2 频率变换 350
19.3.3 滤波器最小阶数选择 351
19.3.4 模拟滤波器到数字滤波器的转换 352
19.3.5 完全工具函数设计IIR滤波器 354
19.4 IIR滤波器直接设计 356
19.5 FIR滤波器设计 357
19.5.1 运用窗函数设计数字滤波器 357
19.5.2 标准型FIR滤波器 359
19.5.3 多频带FIR滤波器 360
19.6 综合应用 361
19.7 疑难解答 362
第20章 MATLAB在通信原理中的应用 362
20.1 幅度调制 364
20.1.1 BASK调制 364
20.1.2 MASK调制 365
20.1.3 QAM调制 366
20.2 相位调制 367
20.2.1 PSK调制 367
20.2.2 OQPSK调制 368
20.3 频率调制 369
20.3.1 BFSK调制 370
20.3.2 MFSK调制 371
20.3.3 CPM调制 372
20.4 数字信号的解调 376
20.4.1 BASK解调 376
20.4.2 QAM解调 377
20.4.3 BPSK解调 378
20.4.4 BFSK解调 380
20.5 综合应用 381
20.6 疑难解答 383
第21章 MATLAB在图像处理领域的应用 383
21.1 图像表达与显示 386
21.1.1 图像类型及存储方式 386
21.1.2 图像转换 386
21.1.3 读/写图像文件 386
21.1.4 图像显示 387
21.1.5 彩色图像表示模式 387
21.1.6 常用的彩色图像处理函数 387
21.2 图像运算 389
21.2.1 直方图 389
21.2.2 直方图均衡 389
21.2.3 灰度线性变换 390
21.2.4 灰度非线性变换 391
21.3 图像变换 392
21.3.1 图像缩放 392
21.3.2 图像旋转 393
21.4 图像分析与增强 393
21.4.1 线性空域滤波 394
21.4.2 非线性空域滤波 394
21.5 图像区域处理 395
21.5.1 最大类间方差法 396
21.5.2 常用的彩色图像处理函数 396
21.6 综合应用 398
21.7 疑难解答 400
第22章 MATLAB在金融领域的应用 400
22.1 数据读取 402
22.2 绘制线型图 402
22.3 绘制K线图 403
22.4 绘制移动平均线 404
22.5 绘制布林带 406
22.6 综合应用 408
22.7 疑难解答 409