第1篇 新手入门篇 2
第1章认识MATLAB 2
1.1什么是MATLAB 3
1.1.1 MATLAB概述 3
1.1.2 MATLAB产生的历史背景 3
1.1.3 MathWorks及其产品概述 4
1.1.4 MATLAB的语言特点 4
1.1.5 MATLAB的组成 5
1.2 MATLAB R2014b的新增功能 5
1.3 MATLAB的行业应用 7
1.4 MATLAB R2014b的通用命令 7
高手私房菜 8
技巧1: MATLAB的学习技巧 8
技巧2: MATLAB的编程规范 8
第2章MATL AB的工作环境 9
2.1 MATLAB R2014b的安装与启动 10
2.1.1对计算机配置的要求 10
2.1.2安装MATLAB 10
2.1.3启动和退出MATLAB 12
2.1.4卸载MATLAB 12
2.2 MATLAB R2014b的目录结构 13
2.3 MATLAB R2014b的工作界面 13
2.3.1菜单和工具栏 14
2.3.2命令窗口 15
2.3.3工作空间 16
2.3.4命令历史窗口 17
2.4 MATLAB R2014b的文件管理 17
2.4.1当前文件夹浏览器和路径管理器 17
2.4.2搜索路径及其设置 18
2.5 MATLAB R2014b的帮助系统 20
2.5.1使用帮助浏览器窗口 20
2.5.2使用帮助命令 21
2.5.3演示帮助 21
高手私房菜 22
技巧1:用好MATLAB的帮助功能 22
技巧2:如何注释一段程序 22
技巧3:注释和取消注释的快捷键 22
第2篇 语法基础篇 24
第3章MATLAB的基本语法 24
3.1 MATLAB的表达式和函数 25
3.1.1变量 25
3.1.2关键字 25
3.2 MATLAB的数据类型 26
3.2.1数值 26
3.2.2逻辑 30
3.2.3字符串 30
3.2.4单元数组 30
3.2.5结构体 31
3.2.6日期和时间 32
3.3 MATLAB的运算符 33
3.3.1算术运算符 33
3.3.2关系运算符 34
3.3.3逻辑运算符 35
3.3.4运算符优先级 36
3.4 MATLAB的标点符号 36
3.5基本数学函数 38
3.6 MATLAB的脚本文件 39
3.7习题 39
高手私房菜 40
技巧1:函数文件的命名技巧 40
技巧2:如何自动对齐一段程序 40
第4章 MATLAB的数组及其操作 41
4.1数组的创建 42
4.1.1一维数组的创建 42
4.1.2二维数组的创建 43
4.1.3多维数组的创建 44
4.2基本的数组操作 49
4.3数组的运算 55
4.3.1数值运算 55
4.3.2逻辑运算 56
4.3.3关系运算 56
4.3.4向量的点积、叉积、混合积 57
4.3.5范数 58
4.3.6数组的保存和载入 58
4.4习题 59
高手私房菜 59
技巧1:如何清除MATLAB命令窗口中的内容 59
技巧2:如何清除MATLAB工作空间中的变量 60
第5章MATLAB的矩阵及其操作 61
5.1矩阵的生成及初等运算 62
5.1.1矩阵的生成 62
5.1.2冒号表达式 63
5.1.3矩阵的拆分 63
5.1.4矩阵的连接 67
5.2矩阵运算 67
5.2.1基本运算 67
5.2.2点运算 71
5.3矩阵分析 72
5.3.1常用矩阵 72
5.3.2矩阵的特征参数 75
5.4稀疏矩阵 78
5.4.1稀疏矩阵的生成 79
5.4.2转换成满矩阵 79
5.4.3对非零元素进行操作 80
5.4.4特殊的稀疏矩阵 81
5.5习题 82
高手私房菜 83
技巧1:如何对付“Out of Memory” 83
技巧2:如何高效使用Memory 83
第6章 利用MATLAB进行科学计算 85
6.1多项式、插值与拟合 86
6.1.1多项式的表示 86
6.1.2多项式的运算 86
6.1.3函数插值 89
6.1.4函数拟合 90
6.2数值微分与积分 92
6.2.1数值微分 92
6.2.2数值积分 94
6.3线性方程组的求解 97
6.3.1利用左除运算求解线性方程组 97
6.3.2利用矩阵求逆求解线性方程组 98
6.3.3利用矩阵分解求解线性方程组 99
6.4非线性方程组的求解 102
6.4.1单变量非线性方程的求解 102
6.4.2非线性方程组的求解 102
6.5微分方程的求解 103
6.5.1常微分方程初值问题 103
6.5.2常微分方程边值问题 106
6.6概率统计 108
6.6.1常见分布的随机数产生 108
6.6.2计算概率密度函数值 109
6.6.3计算随机变量的数学期望和方差 110
6.6.4参数估计 110
6.6.5假设检验 112
6.7习题 112
高手私房菜 113
技巧:如何对线性方程组的解的情况进行判定 113
第7章 利用MATLAB进行符号运算 115
7.1符号变量、符号表达式和符号方程的生成 116
7.1.1使用sym函数生成符号变量和符号表达式 116
7.1.2使用syms函数定义符号变量和符号表达式 117
7.1.3符号方程的生成 117
7.2符号变量的基本操作 118
7.2.1 findsym函数:寻找符号变量 118
7.2.2符号运算的精度确定 118
7.3符号表达式的基本操作 119
7.3.1四则运算 119
7.3.2符号多项式的因式分解与展开 119
7.3.3提取有理式的分子和分母 121
7.3.4符号表达式的化简 121
7.3.5符号表达式的替换 122
7.3.6反函数的求解 123
7.3.7复合函数 123
7.4符号矩阵的生成和运算 124
7.4.1符号矩阵的生成 124
7.4.2符号矩阵的运算 125
7.5符号微积分 127
7.5.1符号极限 127
7.5.2符号微分 127
7.5.3符号积分 128
7.6符号积分变换 129
7.6.1 Fourier变换及其逆变换 129
7.6.2 Laplace变换及其逆变换 130
7.6.3 Z变换及其逆变换 132
7.7符号方程的求解 133
7.7.1代数方程求解 133
7.7.2微分方程求解 134
7.8习题 135
高手私房菜 136
技巧:无穷级数求和问题的求解方法 136
第3篇数据可视化篇 138
第8章 二维数据可视化 138
8.1图形绘制 139
8.1.1离散数据及离散函数 139
8.1.2连续函数 139
8.1.3图形绘制的基本步骤 140
8.1.4图形绘制示例 141
8.2二维图形绘制 141
8.2.1 plot指令 141
8.2.2格栅 143
8.2.3文字说明 144
8.2.4线型、标记和颜色 145
8.2.5坐标轴设置 146
8.2.6图形迭绘 147
8.2.7子图绘制 148
8.2.8交互式绘图 149
8.2.9双坐标轴绘制 150
8.2.10 fplot绘图指令 150
8.2.11 ezplot绘图指令 151
8.2.12特殊坐标轴绘图 152
8.3二维特殊图形函数 154
8.3.1柱状图 154
8.3.2面积图 155
8.3.3实心图 156
8.3.4向量图 157
8.3.5饼图 157
8.3.6直方图 158
8.4图形句柄 159
8.4.1句柄对象 159
8.4.2对象属性 160
8.4.3图形句柄创建实例 162
8.5习题 165
高手私房菜 166
技巧:如何建立一个带编号的图形窗口 166
第9章 三维数据可视化 167
9.1三维图形绘制 168
9.1.1曲线图绘制 168
9.1.2网格图绘制 168
9.1.3曲面图绘制 169
9.2三维隐函数绘图 170
9.3三维图形的修饰处理 172
9.3.1三维图形的视点处理 172
9.3.2色彩处理 174
9.3.3光照处理 174
9.4习题 175
高手私房菜 175
技巧:用颜色图编辑器(colormap editor)对三维图形再加工 175
第4篇程序设计篇 178
第10章MATLAB编程基础 178
10.1 M文件 179
10.1.1函数变量 180
10.1.2函数参数 181
10.1.3函数句柄 184
10.1.4函数类型 184
10.2 MATLAB的程序控制结构 187
10.2.1条件控制语句 187
10.2.2循环控制语句 189
10.2.3误差控制语句 190
10.2.4其他流程控制语句 191
10.3文件操作 192
10.3.1文件的打开与关闭 193
10.3.2文件I/O 194
10.4 MATLAB程序优化 197
10.4.1通过Profiler进行程序运行分析 197
10.4.2通过tic和toc函数进行程序运行分析 198
10.4.3程序优化的常用方法 198
10.5程序调试 199
10.5.1直接调试法 200
10.5.2利用调试工具 200
10.6习题 201
高手私房菜 201
技巧:加快MATLAB程序执行速度的技巧 201
第11章 图形用户界面设计 203
11.1使用GUIDE创建GUI 204
11.1.1 GUIDE编辑界面简介 204
11.1.2菜单设计实例 205
11.1.3包含控件的GUI设计实例 206
11.1.4 M文件和FIG文件 209
11.2 GUI编程 210
11.3实例解析 212
11.3.1实例1: peaks函数的轮廓图绘制 212
11.3.2实例2:用控件控制图形的属性 215
11.3.3实例3:TeapotdemoGUI的制作过程剖析 219
11.4习题 221
高手私房菜 221
技巧1:创建MATLAB图形用户界面所需的三个基本元素 221
技巧2:编写独立的回调函数 222
第12章Simulink仿真基础 223
12.1 Simulink简介 224
12.2一个简单的Simulink仿真示例 224
12.3 Simulink的基本模块 226
12.3.1 Simulink的基本模块及其功能 226
12.3.2常用模块的参数和属性设置 227
12.4 Simulink的基本操作 229
12.4.1 Simulink的文件操作 229
12.4.2模块的操作 230
12.4.3信号线的操作 231
12.4.4给模型添加文本注释 232
12.5复杂系统的仿真 233
12.5.1仿真的设置 233
12.5.2连续系统仿真示例 236
12.5.3离散系统仿真示例 237
12.6子系统与封装 238
12.6.1建立子系统 238
12.6.2子系统的封装 240
12.7习题 242
高手私房菜 242
技巧:Simulink利用Scope输出及绘制仿真波形技巧 242
第5篇 综合实战篇 246
第13章MATLAB在信号与系统中的应用 246
13.1典型连续时间信号描述及运算 247
13.1.1典型连续信号波形的绘制 247
13.1.2连续时间信号的运算 249
13.2线性系统时域分析 251
13.2.1连续时间信号卷积 251
13.2.2线性系统时域分析 252
13.3连续系统的频域分析 254
13.4连续时间系统S域零极点分析 256
13.4.1零极点分布与系统稳定性 257
13.4.2零极点分布与系统冲激响应时域特性 258
13.4.3由连续系统零极点分布分析系统的频率特性 260
13.5习题 263
高手私房菜 264
技巧:零极点和状态方程之间的相互转换 264
第14章MATLAB在数字信号处理中的应用 267
14.1离散时间信号的MATLAB实现 268
14.1.1正弦序列 268
14.1.2指数序列 268
14.1.3单位抽样序列 271
14.1.4单位阶跃序列 271
14.2基于MATLAB的快速Fourier变换 273
14.2.1快速Fourier变换的用法 273
14.2.2运用FFT进行简单滤波 275
14.3 IIR数字滤波器的设计 277
14.3.1模拟原型滤波器 277
14.3.2频率变换 278
14.3.3滤波器最小阶数选择 278
14.3.4模拟滤波器到数字滤波器的转换 280
14.3.5完全工具函数设计IIR滤波器 281
14.4 IIR滤波器直接设计 284
14.5 FIR滤波器设计 285
14.5.1运用窗函数设计数字滤波器 285
14.5.2标准型FIR滤波器 287
14.5.3多频带FIR滤波器 288
14.6习题 290
高手私房菜 291
技巧:最优的标准多频带FIR数字滤波器设计 291
第15章MATLAB在通信原理中的应用 293
15.1幅度调制 294
15.1.1 BASK调制 294
15.1.2 MASK调制 295
15.1.3 QAM调制 297
15.2相位调制 298
15.2.1 PSK调制 298
15.2.2 OQPSK调制 299
15.3频率调制 301
15.3.1BFSK调制 301
15.3.2 MFSK调制 303
15.3.3 C P M调制 303
15.4数字信号的解调 306
15.4.1 BASK解调 306
15.4.2 QAM解调 307
15.4.3 BPSK解调 309
15.4.4 BFSK解调 310
15.5习题 312
高手私房菜 312
技巧:正交频分复用多载波频率调制方式的编程 312
第6篇高手秘籍篇 316
第16章 数字图像处理 316
16.1 MATLAB数字图像处理基础 317
16.1.1图像类型及存储方式 317
16.1.2图像转换 317
16.1.3读/写图像文件 318
16.1.4图像显示 318
16.2图像灰度变换 318
16.2.1直方图 319
16.2.2直方图均衡 319
16.2.3灰度线性变换 320
16.2.4灰度非线性变换 321
16.3几何变换 321
16.3.1图像缩放 322
16.3.2图像旋转 322
16.4图像滤波 323
16.4.1线性空域滤波 323
16.4.2非线性空域滤波 324
16.5彩色图像处理 325
16.5.1彩色图像表示模式 325
16.5.2常用的彩色图像处理函数 326
16.6习题 327
高手私房菜 327
技巧:MATLAB批量读入图片技巧 327
第17章 视觉分析 329
17.1 Computer Vision System Toolbox 330
17.2特征检测与提取 330
17.2.1特征检测与描述 330
17.2.2特征匹配 332
17.3三维重建 333
17.3.1相机标定 333
17.3.2图像校正 333
17.3.3计算视差 333
17.3.4场景恢复 334
17.4处理视频序列 334
17.4.1读取视频序列 334
17.4.2处理视频帧 334
17.4.3保存视频序列 335
17.5实例解析 335
17.5.1立体标定与场景重建 335
17.5.2从视频中恢复深度 337
17.6习题 339
高手私房菜 340
技巧:工具箱的添加技巧 340
第18章 文件I/O 341
18.1打开和关闭文件 342
18.1.1打开文件 342
18.1.2关闭文件 342
18.2处理二进制数据文件 343
18.2.1读二进制数据 343
18.2.2写二进制数据 343
18.3格式化读写文件 344
18.3.1格式化读取 345
18.3.2格式化写入 345
18.4文件内容定位 346
18.5习题 347
高手私房菜 348
技巧:文件I/O技巧 348
第19章MATLAB的高级应用 349
19.1 MATLAB编译器 350
19.1.1编译器的功能 350
19.1.2编译器的性能 350
19.2编译器的安装与配置 350
19.2.1前提准备 351
19.2.2配置编译器 351
19.3 C/C++语言MEX文件 352
19.3.1 MEX文件的数据 352
19.3.2 MEX文件的结构 352
19.3.3 C语言MEX文件的建立 354
19.4 MAT文件 355
19.4.1在MATLAB中读写MAT文件 355
19.4.2使用C/C++创建MAT文件 357
19.5创建独立运行的程序 359
19.5.1 MCC命令 360
19.5.2编译包含绘图命令的M文件 360
19.6习题 361
高手私房菜 362
技巧:MAT文件中变量的查看技巧 362