第1章 MATLAB R2012A概述 1
1.1 MATLAB R2012a简介 2
1.1.1 MathWorks及其产品概述 2
1.1.2 MATLAB的发展历史 2
1.1.3 MATLAB与其他数学软件 3
1.1.4 MATLAB的主要特点 4
1.1.5 MATLAB的系统组成 4
1.1.6 MATLAB工具箱简介 5
1.1.7 MATLAB R2012a新特性 6
1.2 MATLAB R2012a的安装与卸载 7
1.2.1 系统要求 7
1.2.2 安装过程 7
1.2.3 MATLAB的卸载 10
1.3 MATLAB R2012a的目录结构 10
1.4 MATLAB R2012a的工作环境 11
1.4.1 Start按钮 11
1.4.2 菜单栏 12
1.4.3 工具栏 16
1.4.4 命令窗口(Command Window) 17
1.4.5 工作空间(Workspace) 18
1.4.6 命令历史窗口(Command History) 19
1.5 MATLAB R2012a的通用命令 20
1.6 MATLAB R2012a的文件管理 21
1.6.1 当前目录浏览器和路径管理器 21
1.6.2 搜索路径及其设置 21
1.7 MATLAB R2012a的帮助系统 23
1.7.1 纯文本帮助 23
1.7.2 演示(Demos)帮助 24
1.7.3 帮助导航浏览器 26
1.8 MATLAB使用初步 27
1.9 本章小结 28
第2章 MATLAB基础知识 29
2.1 数据类型 30
2.1.1 数值类型 30
2.1.2 逻辑类型 34
2.1.3 字符和字符串 36
2.1.4 函数句柄 39
2.1.5 结构体类型 41
2.1.6 单元数组类型 44
2.1.7 单元数组类型(cell) 45
2.1.8 map容器类型 48
2.2 基本矩阵操作 52
2.2.1 矩阵和数组的概念及其区别 52
2.2.2 矩阵的构造 53
2.2.3 矩阵大小及结构的改变 57
2.2.4 矩阵下标引用 58
2.2.5 矩阵信息的获取 61
2.2.6 矩阵的保存和加载 65
2.3 运算符 71
2.3.1 算术运算符 71
2.3.2 关系运算符 73
2.3.3 逻辑运算符 74
2.3.4 运算优先级 75
2.4 字符串处理函数 76
2.4.1 字符串的构造 76
2.4.2 字符串比较函数 77
2.4.3 字符串查找和替换函数 78
2.4.4 字符串——数值转换 79
2.5 本章小结 80
第3章 数组与矩阵 81
3.1 数组运算 82
3.1.1 数组的创建和操作 82
3.1.2 数组的常见运算 85
3.2 矩阵操作 89
3.2.1 创建矩阵 89
3.2.2 改变矩阵大小 94
3.2.3 重构矩阵 96
3.3 矩阵元素的运算 96
3.3.1 矩阵加减运算 96
3.3.2 矩阵乘法运算 98
3.3.3 矩阵的除法运算 99
3.3.4 矩阵的幂运算 100
3.3.5 矩阵元素的查找 100
3.3.6 矩阵元素的排序 101
3.3.7 矩阵元素的求和 102
3.3.8 矩阵元素的求积 102
3.3.9 矩阵元素的差分 103
3.4 矩阵运算 104
3.4.1 矩阵分析 104
3.4.2 矩阵分解 110
3.4.3 特征值和特征向量 116
3.5 稀疏矩阵 118
3.5.1 稀疏矩阵的存储方式 119
3.5.2 稀疏矩阵的生成 119
3.5.3 稀疏矩阵的运算 124
3.6 本章小结 124
第4章 MATLAB编程基础 125
4.1 M文件编辑器 126
4.2 变量 128
4.2.1 变量的命名 128
4.2.2 变量的类型 129
4.2.3 MATLAB默认的特殊变量 129
4.2.4 关键字 130
4.3 MATLAB的控制流 130
4.3.1 顺序结构 130
4.3.2 if-else-end分支结构 131
4.3.3 switch-case 133
4.3.4 try-catch结构 135
4.3.5 for循环结构 136
4.3.6 while循环结构 137
4.4 控制程序流的其他常用指令 139
4.4.1 return指令 139
4.4.2 input和keyboard指令 139
4.4.3 yesinput指令 139
4.4.4 pause指令 140
4.4.5 continue指令 140
4.4.6 break指令 140
4.4.7 error和warning指令 141
4.5 脚本和函数 141
4.5.1 脚本 141
4.5.2 函数 142
4.5.3 M文件的一般结构 144
4.5.4 匿名函数、子函数、私有函数与私有目录 146
4.5.6 重载函数 148
4.5.7 eval、feval函数和内联函数 148
4.5.8 内联函数 151
4.5.9 向量化和预分配 154
4.5.10 函数的函数 154
4.5.11 P码文件 155
4.6 M文件中变量的检测与传递 157
4.6.1 输入/输出变量检测指令 157
4.6.2 “可变数量”输入/输出变量 157
4.6.3 跨空间变量传递 159
4.7 MATLAB程序的调试 162
4.7.1 程序调试的基本概念 162
4.7.2 直接调试法 163
4.7.3 使用调试函数进行调试 163
4.7.4 工具调试法 167
4.7.5 程序的性能优化技术 168
4.8 小结 170
第5章 数据可视化 171
5.1 图形绘制 172
5.1.1 离散数据及离散函数 172
5.1.2 连续函数 173
5.1.3 图形绘制示例 174
5.1.4 图形绘制的基本步骤 175
5.2 二维图形绘制 175
5.2.1 plot指令 176
5.2.2 格栅 182
5.2.3 文字说明 182
5.2.4 线型、标记和颜色 185
5.2.5 坐标轴设置 188
5.2.6 图形迭绘 189
5.2.7 子图绘制 190
5.2.7 交互式绘图 191
5.2.8 双坐标轴绘制 192
5.2.9 fiplot绘图指令 193
5.2.10 explot绘图指令 195
5.2.11 特殊坐标轴绘图 195
5.2.12 二维特殊图形函数 197
5.3 三维图形绘制 202
5.3.1 曲线图绘制 202
5.3.2 网格图绘制 203
5.3.3 曲面图的绘制 204
5.3.4 光照模型 205
5.3.5 绘制等值线图 206
5.4 四维图形可视化 207
5.4.1 用颜色描述第四维 207
5.4.2 其他函数 208
5.5 本章小结 209
第6章 数据分析 211
6.1 多项式及其函数 212
6.1.1 多项式的表达式和创建 212
6.1.2 多项式求根 213
6.1.3 多项式的四则运算 214
6.1.4 多项式的导数、积分与估值 216
6.1.5 多项式运算函数及操作指令 217
6.1.6 有理多项式 218
6.2 数据插值 219
6.2.1 一维插值 220
6.2.2 二维插值 223
6.3 函数的极限 224
6.3.1 极限的概念 224
6.3.2 求极限的函数 224
6.4 函数数值积分 226
6.4.1 数值积分问题的数学表述 227
6.4.2 一元函数的数值积分 227
6.4.3 多重数值积分 229
6.5 本章小结 230
第7章 符号数学计算 231
7.1 MATLAB符号计算概述 232
7.2 符号对象和符号表达式 232
7.2.1 符号对象的创建命令 232
7.2.2 符号对象的创建示例 233
7.2.3 符号计算中的运算符和函数 236
7.2.4 符号对象的类别识别函数 240
7.2.5 符号表达式中的变量确定 242
7.2.6 符号精度计算 242
7.3 符号表达式操作 244
7.3.1 符号表达式显示 244
7.3.2 符号表达式合并 244
7.3.3 符号表达式展开 245
7.3.4 符号表达式嵌套 246
7.3.5 符号表达式分解 247
7.3.6 符号表达式化简 247
7.4 符号表达式替换 249
7.4.1 subs替换函数 249
7.4.2 subexpr替换函数 250
7.5 符号函数的操作 251
7.5.1 复合函数操作 251
7.5.2 反函数操作 252
7.6 符号微积分 253
7.6.1 符号表达式的极限 253
7.6.2 符号表达式的微分 254
7.6.3 符号表达式的积分 256
7.6.4 符号表达式的级数求和 257
7.6.5 符号表达式的泰勒级数 257
7.7 符号积分变换 258
7.7.1 傅里叶变换及其反变换 258
7.7.2 拉普拉斯变换及其反变换 259
7.7.3 Z变换及其反变换 260
7.8 符号代数方程求解 261
7.9 符号微分方程求解 264
7.10 符号分析可视化 266
7.10.1 funtool分析界面 266
7.10.2 taylortool分析界面 269
7.11 本章小结 270
第8章 概率统计 271
8.1 产生随机变量 272
8.1.1 二项分布的随机数据的产生 272
8.1.2 正态分布的随机数据的产生 272
8.1.3 常见分布的随机数产生 273
8.2 概率密度计算 274
8.2.1 通用函数概率密度值 274
8.2.2 专用函数概率密度值 276
8.3 累积概率分布 277
8.3.1 通用函数累积概率值 277
8.3.2 专用函数累积概率值 278
8.4 统计特征 279
8.4.1 平均值、中值 279
8.4.2 数据比较 280
8.4.3 期望 281
8.4.4 方差和标准差 281
8.4.5 协方差与相关系数 281
8.5 统计作图 283
8.5.1 正整数频率表 283
8.5.2 累积分布函数图形 283
8.5.3 最小二乘拟合直线 284
8.5.4 绘制正态分布概率图形 285
8.5.5 样本数据的盒图 286
8.5.6 参考线绘制 286
8.5.7 样本概率图形 288
8.5.8 正态拟合直方图 289
8.6 本章小结 290
第9章 偏微分方程工具箱 291
9.1 偏微分方程(PDE)工具箱介绍 292
9.1.1 偏微分方程常见类型介绍 292
9.1.2 偏微分方程工具箱简介 298
9.2 求解偏微分方程示例 300
9.2.1 求解椭圆方程 300
9.2.2 求解抛物线方程 304
9.2.3 求解双曲线方程 308
9.2.4 求解特征值方程 313
9.3 本章小结 316
第10章 优化工具箱 317
10.1 优化工具箱及最优化问题介绍 318
10.1.1 优化工具箱常用函数 318
10.1.2 最优化问题 321
10.2 线性规划 324
10.2.1 线性规划函数 324
10.2.2 线性规划问题的应用 326
10.3 无约束非线性规划 334
10.3.1 基本数学原理介绍 334
10.3.2 无约束非线性规划函数 335
10.3.3 无约束非线性规划问题应用 339
10.4 二次规划 339
10.4.1 二次规划函数quadprog 339
10.4.2 二次规划问题应用 341
10.5 有约束最小化 342
10.5.1 有约束最小化函数fmincon 342
10.5.2 有约束最小化应用 346
10.6 目标规划 346
10.6.1 目标规划函数fgoalattain 346
10.6.2 目标规划应用 350
10.7 最大最小化 353
10.7.1 最大最小化函数fminimax 353
10.7.2 最大最小化应用 355
10.8 本章小结 356
第11章 图像处理工具箱 359
11.1 MATLAB图像处理基础知识 360
11.1.1 MATLAB图像表达方式 360
11.1.2 MATLAB支持的图像文件格式 361
11.1.3 MATLAB图像类型 362
11.1.4 MATLAB图像类型转换 365
11.1.5 MATLAB图像数据读/写 367
11.2 图像显示 368
11.2.1 标准图像显示技术 368
11.2.2 特殊图像显示技术 370
11.3 图像运算 373
11.3.1 代数运算 373
11.3.2 空间变换 375
11.3.3 图像配准 378
11.4 图像数据变换 379
11.4.1 二维傅立叶变换 379
11.4.2 离散余弦变换 384
11.4.3 其他变换 386
11.5 图像分析与增强 388
11.5.1 像素值及统计 388
11.5.2 图像分析 392
11.5.3 图像调整 395
11.5.4 图像平滑 398
11.6 图像区域处理 400
11.6.1 区域设置 401
11.6.2 区域滤波 402
11.6.3 区域填充 403
11.7 形态学操作 403
11.7.1 图像膨胀 403
11.7.2 图像腐蚀 404
11.7.3 形态学重建 405
11.8 颜色处理 406
11.8.1 显示颜色 406
11.8.2 减少颜色 406
11.8.3 转换颜色 407
11.9 本章小结 408
第12章 信号处理工具箱 409
12.1 MATLAB信号处理基础知识 410
12.1.1 连续信号及其实现 410
12.1.2 离散信号及其实现 410
12.1.3 离散信号基本运算 414
12.1.4 离散系统概念 417
12.1.5 Z变换定义与性质 418
12.1.6 离散傅立叶变换 418
12.2 统计信号处理 419
12.2.1 相关性与协方差 419
12.2.2 频谱分析 421
12.2.3 窗函数 422
12.2.3 功率谱估计 425
12.2.4 现代谱估计 426
12.2.5 时频分析 427
12.2.6 特殊变换方法 428
12.2.7 重新采样 431
12.3 IIR滤波器 432
12.3.1 IIR滤波器优势 432
12.3.2 经典滤波器设计过程 432
12.3.3 经典法IIR滤波器设计 432
12.2.4 直接法IIR滤波器设计 439
12.4 FIR滤波器 440
12.4.1 窗函数法FIR滤波器设计 441
12.4.2 约束最小二乘法FIR滤波器设计 442
12.4.3 其他设计方法 443
12.5 参数建模 444
12.5.1 时域建模 444
12.5.2 频域建模 446
12.6 特殊波形发生函数 447
12.6.1 频率扫描余弦函数 447
12.6.2 Sinc函数 448
12.6.3 高斯震荡正弦脉冲 448
12.6.4 三角脉冲 449
12.6.5 三角波 450
12.6.6 方形脉冲 451
12.6.7 方波 451
12.6.8 脉冲序列 452
12.6.9 压控振荡波 453
12.7 GUI工具 454
12.7.1 信号处理综合工具 454
12.7.2 波形查看器 455
12.7.3 谱分析查看器 455
12.7.4 滤波器可视化工具 456
12.7.5 滤波器设计与分析工具 456
12.7.6 滤波处理工具 457
12.8 本章小结 458
第13章 小波分析工具箱 459
13.1 小波分析 460
13.1.1 小波分析概述 460
13.1.2 小波变换 461
13.1.3 多分辨分析 464
13.1.4 小波包分析 468
13.1.5 几种常用的小波 472
13.1.6 小波应用演示示例 474
13.2 小波工具箱介绍 476
13.2.1 小波工具箱的启动 476
13.2.2 一维连续小波分析工具 477
13.2.3 一维离散小波分析工具 482
13.3 小波分析在图像处理中的应用 488
13.3.1 基于小波变换的图像局部压缩 488
13.3.2 二维小波变换的图像压缩 490
13.3.3 图像压缩中阈值的确定与作用命令 493
13.3.4 基于小波包变换的图像压缩 495
13.3.5 小波变换用于图像去噪 496
13.3.6 小波分析用于图像增强 500
13.3.7 图像钝化与锐化 501
13.3.8 小波分析用于图像融合 504
13.3.9 小波分析用于图像分解 505
13.4 本章小节 508
第14章 Simulink仿真基础 509
14.1 Simulink概述 510
14.1.1 Simulink的基本概念 510
14.1.2 Simulink的工作环境与启动 512
14.1.3 Simulink模型的特点 516
14.1.4 Simulink模块的组成 518
14.1.5 Simulink中的数据类型 519
14.1.6 Simulink中的模块和模块库 523
14.1.7 Simulink常用工具 528
14.1.8 Simulink的实例演示 529
14.2 Simulink模型创建 531
14.2.1 Simulink模块的基本操作 531
14.2.2 模型和模型文件 535
14.2.3 创建模型的基本步骤和技巧 537
14.3 过零检测和代数环 540
14.3.1 过零检测 540
14.3.2 代数环 542
第15章 Simulink仿真应用 545
15.1 子系统的创建和封装 546
15.1.1 子系统介绍 546
15.1.2 创建子系统 548
15.1.3 封装子系统 549
15.2 仿真模型的分析 553
15.2.1 模型状态的确定 553
15.2.2 线性化的数学描述 554
15.2.3 平衡点的分析 556
15.2.4 微分方程的求解算法 557
15.3 运行仿真 558
15.3.1 启动仿真 558
15.3.2 仿真的配置 561
15.3.3 优化仿真过程 565
15.4 模型调试 568
15.4.1 Simulink调试器 568
15.4.2 命令行调试及设置断点 569
15.5 S函数的编写 570
15.5.1 S函数概念及其工作原理 571
15.5.2 S函数的书写 572
15.5.3 S函数应用示例 575
15.6 Simulink实例应用 577
15.7 本章小结 582
第16章 句柄图形对象 583
16.1 句柄图形对象体系 584
16.1.1 句柄图形组织 584
16.1.2 句柄图形对象类型简介 585
16.2 句柄图形对象操作 585
16.2.1 创建对象 585
16.2.2 访问对象句柄 588
16.2.3 复制和删除对象 589
16.2.4 控制图形输出 591
16.2.5 保存句柄 595
16.3 对象属性设置 595
16.3.1 设置属性 596
16.3.2 设置默认属性 597
16.3.3 通用属性 600
16.4 Figure对象 600
16.4.1 Figure对象介绍 600
16.4.2 Figure对象操作 602
16.5 Axes对象 602
16.5.1 坐标轴介绍 602
16.5.2 标签与外观 603
16.5.3 位置 603
16.5.4 一图多轴 604
16.5.5 坐标轴控制 607
16.5.6 线条颜色控制 609
16.5.7 绘图操作 610
16.6 Core对象 611
16.6.1 Core对象介绍 611
16.6.2 Core对象创建示例 612
16.7 Plot对象 612
16.7.1 Plot对象介绍 612
16.7.2 Plot对象创建示例 613
16.7.3 连接变量 613
16.8 Group对象 614
16.8.1 Group对象介绍 614
16.8.2 创建Group对象 614
16.8.3 对象变换 615
16.9 Annotation对象 616
16.9.1 Annotation对象介绍 616
16.9.2 Annotation对象使用示例 616
16.10 本章小结 617
第17章 图形用户界面 619
17.1 图形用户界面介绍 620
17.2 图形用户界面控件 620
17.2.1 图形用户界面控件的创建 621
17.2.2 鼠标动作执行 623
17.2.3 事件队列的执行顺序 625
17.2.4 回调函数的编写 626
17.3 对话框对象 628
17.3.1 公共对话框 629
17.3.2 一般对话框 632
17.4 界面菜单 638
17.4.1 菜单建立 638
17.4.2 菜单属性 639
17.5 编写M文件 640
17.5.1 脚本式M文件 641
17.5.2 函数式M文件 642
17.6 图形界面创建工具GUIDE 644
17.6.1 利用创建工具GUIDE进行GUI设计 644
17.6.2 GUIDE创建的工具 651
17.6.3 创建带UIcontrol控件的图形界面 653
17.6.4 创建带菜单和坐标轴的图形界面 654
17.7 本章小结 658
第18章 文件读取I/O 659
18.1 文件夹的管理 660
18.1.1 当前文件夹管理 660
18.1.2 创建文件夹 663
18.1.3 删除文件夹 664
18.1.4 复制或移动文件夹 665
18.2 打开和关闭文件 669
18.2.1 打开文件 669
18.2.2 关闭文件 671
18.3 工作空间数据-MAT文件 672
18.3.1 输出数据到MAT文件 672
18.3.2 读取MAT文件-load函数 673
18.3.3 查看MAT文件的变量 674
18.4 读/写二进制文件 675
18.4.1 写二进制文件 675
18.4.2 读二进制文件 677
18.5 读/写文本文件 680
18.5.1 写文本文件 680
18.5.2 读文本文件 681
18.5.3 其他读/写文本文件的函数 684
18.6 文件内的位置控制 690
18.7 导入数据 693
18.8 管理音频文件 695
18.8.1 获取音频文件信息 695
18.8.2 读取音频文件 696
18.8.3 播放和录音 699
18.8.4 写入音频文件 701
18.9 管理音频视频文件 703
18.9.1 获取视频文件信息 703
18.9.2 读取和播放视频文件 704
18.9.3 写入视频文件 707
18.10 图像文件 708
18.10.1 常用视频处理函数 708
18.10.2 管理图像文件 708
18.10.3 读取和显示图像文件 710
18.10.4 写入图像文件 711
18.11 本章小结 712
第19章 MATLAB编译器 713
19.1 MATLAB Compiler(编译器)概述 714
19.2 编译器的安装和配置 715
19.2.1 编译器的安装 715
19.2.2 编译器的配置 715
19.3 编译过程 716
19.3.1 安装MCR 716
19.3.2 MCR编译过程 718
19.4 编译命令mcc 718
19.5 编译生成独立运行程序 720
19.5.1 编译M文件 720
19.5.2 编译图形绘制M文件 723
19.5.3 由含feval指令的M文件生成EXE文件 723
19.5.4 编译GUI文件 725
19.6 本章小结 726
第20章 外部接口应用介绍 727
20.1 接口概述 728
20.1.1 MEX文件介绍 728
20.1.2 MAT文件介绍 728
20.1.3 MATLAB计算引擎介绍 729
20.1.4 编译器介绍 729
20.2 基于C/C++的MEX文件应用 729
20.2.1 MEX文件结构 729
20.2.2 创建C/C+++MEX文件 731
20.2.3 调试C/C+++语言MEX程序文件 735
20.3 基于C/C++的MAT文件应用 736
20.3.1 使用C/C+++创建MAT文件过程 736
20.3.2 使用C/C+++创建MAT文件示例 737
20.3.3 使用C/C+++读取MAT文件示例 739
20.4 基于C/C++的计算引擎应用 741
20.4.1 MATLAB引擎库函数 741
20.4.2 创建MATLAB引擎调用源程序 742
20.5 MATLAB中Java的调用 744
20.5.1 Java接口使用 745
20.5.2 Java接口编程应用示例 748
20.6 本章小结 749