第1章 MATLAB概述 1
1.1 MATLAB简介 1
1.2 MATLAB主要功能 2
1.2.1 开发算法和应用程序 2
1.2.2 分析和访问数据 3
1.2.3 实现数据可视化 3
1.2.4 进行数值计算 4
1.2.5 发布结果和部署应用程序 5
1.3 MATLAB安装与启动 5
1.3.1 MATLAB的安装 5
1.3.2 MATLAB的启动与退出 7
1.3.3 Desktop操作界面简介 8
1.4 Command Window运行入门 8
1.4.1 命令行的使用 8
1.4.2 数值、变量和表达式 9
1.4.3 命令行的特殊输入方法 11
1.4.4 命令窗口的显示格式 12
1.4.5 命令窗口常用快捷键与命令 13
1.5 Command History窗口 14
1.6 Current Directory窗口 14
1.7 Workspace Browser和Variable Editor窗口 15
1.7.1 Workspace Browser窗口 15
1.7.2 Variable Editor窗口 15
1.8 命令行辅助功能与Function Browser 16
1.9 Help 17
1.9.1 Help Browser 18
1.9.2 命令窗口查询帮助 18
第2章 矩阵和数组 20
2.1 矩阵的创建与组合 20
2.1.1 创建简单矩阵 20
2.1.2 创建特殊矩阵 21
2.1.3 矩阵的合并 22
2.2 矩阵的寻访与赋值 23
2.2.1 矩阵的标识 23
2.2.2 矩阵的寻访 24
2.2.3 矩阵的赋值 24
2.3 进行数组运算的常用函数 25
2.3.1 函数数组运算规则的定义 25
2.3.2 进行数组运算的常用函数 25
2.4 查询矩阵信息 27
2.4.1 矩阵的形状信息 27
2.4.2 矩阵的数据类型 27
2.4.3 矩阵的数据结构 28
2.5 数组运算与矩阵运算 28
2.6 矩阵的重构 29
2.6.1 矩阵元素的扩展与删除 29
2.6.2 矩阵的重构 30
2.7 稀疏矩阵 31
2.7.1 稀疏矩阵的存储方式 32
2.7.2 稀疏矩阵的创建 32
2.7.3 稀疏矩阵的运算 35
2.7.4 稀疏矩阵的交换与重新排序 36
2.7.5 稀疏矩阵视图 38
2.8 多维数组 38
2.8.1 多维数组的创建 39
2.8.2 多维数组的寻访与重构 41
2.9 多项式的表达式及其操作 44
2.9.1 多项式的表达式和创建 44
2.9.2 多项式运算函数 45
第3章 数据类型 47
3.1 数值型 47
3.2 逻辑型 47
3.2.1 逻辑型简介 47
3.2.2 返回逻辑结果的函数 48
3.2.3 运算符的优先级 50
3.3 字符和字符串 51
3.3.1 创建字符串 51
3.3.2 字符串比较 52
3.3.3 字符串查找与替换 53
3.3.4 类型转换 54
3.3.5 字符串应用函数小结 55
3.4 structure数组 56
3.4.1 structure数组的创建 57
3.4.2 structure数组的寻访 59
3.4.3 structure数组域的基本操作 60
3.4.4 structure数组的操作 61
3.5 cell数组 63
3.5.1 cell数组的创建 63
3.5.2 cell数组的寻访 65
3.5.3 cell数组的基本操作 65
3.5.4 cell数组操作函数 66
3.6 Map容器 67
3.6.1 Map数据类型介绍 67
3.6.2 Map对象的创建 68
3.6.3 查看Map的内容 69
3.6.4 Map的读写 70
3.6.5 Map中key和value的修改 72
3.6.6 映射其他数据类型 73
第4章 数值计算 75
4.1 因式分解 75
4.1.1 行列式、逆和秩 75
4.1.2 Cholesky因式分解 77
4.1.3 LU因式分解 78
4.1.4 QR因式分解 79
4.1.5 范数 81
4.2 矩阵特征值和奇异值 82
4.2.1 特征值和特征向量的求取 82
4.2.2 奇异值分解 84
4.3 概率和统计 85
4.3.1 基本分析函数 85
4.3.2 概率函数、分布函数、逆分布函数和随机数 93
4.4 数值求导与积分 94
4.4.1 导数与梯度 94
4.4.2 一元函数的数值积分 95
4.4.3 二重积分的数值计算 97
4.4.4 三重积分的数值计算 97
4.5 插值 98
4.5.1 一维数据插值 98
4.5.2 二维数据插值 99
4.5.3 多维插值 100
4.5.4 样条插值 100
4.6 曲线拟合 101
4.6.1 最小二乘原理及其曲线拟合算法 101
4.6.2 曲线拟合的实现 102
4.7 Fourier分析 102
4.8 微分方程 104
4.8.1 常微分方程 104
4.8.2 偏微分方程 106
第5章 符号计算 110
5.1 符号变量、表达式及符号方程 110
5.1.1 符号变量与表达式的创建 110
5.1.2 符号计算中的运算符和基本函数 112
5.1.3 创建符号方程 113
5.2 符号微积分 113
5.2.1 符号求导与微分 113
5.2.2 符号求极限 115
5.2.3 符号积分 116
5.2.4 级数求和 116
5.2.5 Taylor级数 117
5.3 符号表达式的化简与替换 117
5.3.1 符号表达式的化简 118
5.3.2 符号表达式的替换 122
5.4 符号可变精度计算 125
5.5 符号线性代数 127
5.5.1 基础代数运算 127
5.5.2 线性代数运算 128
5.6 符号方程求解 130
5.6.1 求代数方程符号解 130
5.6.2 求代数方程组的符号解 130
5.6.3 求微分方程符号解 132
5.6.4 求微分方程组的符号解 134
5.7 符号积分变换 134
5.7.1 Fourier变换及其反变换 134
5.7.2 Laplace变换及其反变换 135
5.7.3 Z变换及其反变换 136
第6章 MATLAB编程基础 138
6.1 M文件 138
6.1.1 M文件编辑器 139
6.1.2 M文件的基本内容 140
6.1.3 脚本式M文件 142
6.1.4 函数式M文件 143
6.2 流程控制 143
6.2.1 顺序结构 144
6.2.2 if语句 144
6.2.3 switch语句 146
6.2.4 for循环 146
6.2.5 while循环 147
6.2.6 continue命令 148
6.2.7 break命令 149
6.2.8 return命令 150
6.2.9 人机交互命令 150
6.3 函数的类型 152
6.3.1 主函数 152
6.3.2 子函数 152
6.3.3 私有函数 153
6.3.4 嵌套函数 154
6.3.5 重载函数 157
6.3.6 匿名函数 157
6.4 函数的变量 161
6.4.1 变量类型 161
6.4.2 变量的传递 162
6.5 函数句柄 164
6.5.1 函数句柄的创建 165
6.5.2 函数句柄的调用 165
6.5.3 函数句柄的操作 166
6.6 串演算函数 167
6.6.1 eval函数 167
6.6.2 feval函数 168
6.6.3 inline函数 169
6.7 内存的使用 170
6.7.1 内存管理函数 170
6.7.2 高效使用内存的策略 170
6.7.3 解决“Out of Memory”问题 172
6.8 程序调试和优化 173
6.8.1 使用Debugger窗口调试 173
6.8.2 在命令窗口中调试 176
6.8.3 profile性能检测 178
6.9 错误处理 180
6.9.1 使用try-catch语句捕捉错误 180
6.9.2 处理错误和从错误中恢复 181
6.9.3 警告 183
第7章 数据可视化 185
7.1 绘图的基本知识 185
7.1.1 离散数据和离散函数的可视化 185
7.1.2 连续函数的可视化 186
7.1.3 可视化的一般步骤 187
7.2 二维图形 187
7.2.1 基本绘图函数 187
7.2.2 曲线的色彩、线型和数据点型 189
7.2.3 坐标、刻度和网格控制 190
7.2.4 图形标识 192
7.2.5 双坐标图和子图 195
7.2.6 双轴对数图形 197
7.2.7 特殊二维图形 197
7.3 三维图形 203
7.3.1 绘制三维曲线图 203
7.3.2 绘制三维曲面图 203
7.3.3 特殊三维图形 205
7.4 三维图形的高级控制 207
7.4.1 视点控制 207
7.4.2 颜色的使用 208
7.4.3 光照控制 208
第8章 图像处理 210
8.1 图像文件的操作 210
8.1.1 查询图像文件的信息 211
8.1.2 图像文件的读写 212
8.1.3 图像文件的显示 213
8.1.4 图像格式的转换 214
8.2 图像的几何运算 216
8.2.1 图像的平移 216
8.2.2 图像的镜像变换 216
8.2.3 图像缩放 217
8.2.4 图像的旋转 218
8.2.5 图像的剪切 218
8.3 图像的正交变换 219
8.3.1 傅立叶变换 219
8.3.2 离散余弦变换 220
8.3.3 Radon变换 221
8.4 MATLAB图像增强 222
8.4.1 像素值及其统计特性 222
8.4.2 对比度增强 224
8.4.3 直方图均衡化 225
8.4.4 空域滤波增强 226
8.4.5 频域增强 228
第9章 图形用户界面(GUI)设计 230
9.1 句柄图形对象 230
9.1.1 图形对象 230
9.1.2 图形对象句柄 231
9.1.3 图形对象属性的获取和设置 232
9.2 GUIDE简介 234
9.2.1 启动GUI 235
9.2.2 Layout编辑器 235
9.2.3 运行GUI 236
9.3 创建GUI 236
9.3.1 GUI窗口布局 236
9.3.2 菜单的添加 237
9.3.3 控件 241
9.4 CallBack函数 245
9.4.1 变量的传递 245
9.4.2 函数编写 246
9.5 GUI设计示例 248
第10章 数据文件I/O 254
10.1 处理文件名称 254
10.2 MATLAB支持的文件格式 255
10.3 导入向导的使用 256
10.4 MAT文件的读写 257
10.4.1 MAT文件的写入 257
10.4.2 MAT文件的读取 258
10.5 Text文件读写 259
10.5.1 Text文件的读取 259
10.5.2 Text文件的写入 262
10.6 Excel文件读写 262
10.7 音频/视频文件操作 264
10.7.1 获取音频/视频文件的文件头信息 264
10.7.2 音频/视频文件的导入与导出 264
第11章 MATLAB优化问题应用 266
11.1 MATLAB优化工具箱 266
11.1.1 MATLAB求解器 267
11.1.2 极小值优化 269
11.1.3 多目标优化 275
11.1.4 方程组求解 276
11.1.5 最小二乘及数据拟合 277
11.2 模式搜索法 278
11.3 模拟退火算法 280
11.3.1 模拟退火算法简介 280
11.3.2 模拟退火算法应用实例 280
11.3.3 关于计算结果 281
11.4 遗传算法 282
11.4.1 遗传算法简介 282
11.4.2 遗传算法应用实例 283
11.5 Optimization Tool简介 285
第12章 信号处理 289
12.1 信号处理基本理论 289
12.1.1 信号的生成 289
12.1.2 数字滤波器结构 293
12.2 IIR滤波器的MATLAB实现 294
12.2.1 IIR滤波器经典设计 295
12.2.2 IIR滤波器直接设计法 301
12.2.3 广义巴特沃思IIR滤波器设计 302
12.3 FIR滤波器的MATLAB实现 303
12.3.1 FIR滤波器设计 303
12.3.2 fir1函数 304
12.3.3 fir2函数 305
第13章 Simulink仿真 306
13.1 Simulink简介 306
13.1.1 Simulink功能与特点 306
13.1.2 Simulink的安装与启动 307
13.2 Simulink基础 309
13.2.1 Simulink模型是什么 309
13.2.2 Simulink模块操作 309
13.2.3 Simulink信号线操作 312
13.2.4 Simulink对模型的注释 314
13.2.5 Simulink常用的模型库 314
13.2.6 Simulink仿真配置 316
13.3 Simulink动态系统仿真 320
13.3.1 简单系统的仿真分析 320
13.3.2 离散系统的仿真分析 322
13.3.3 连续系统的仿真分析 324
13.4 Simulink模型中的子系统 327
13.4.1 子系统的建立 327
13.4.2 子系统的封装 328
13.5 Simulink S-函数 331
13.5.1 什么是S-函数 332
13.5.2 S-函数的作用和原理 332
13.5.3 用M文件创建S-函数实例 333
第14章 应用程序接口 336
14.1 MATLAB应用程序接口介绍 336
14.2 MATLAB调用C/C++ 337
14.2.1 MATLAB MEX文件 338
14.2.2 C-MEX文件的使用 341
14.3 C/C++调用MATLAB引擎 346
14.3.1 MATLAB计算引擎概述 346
14.3.2 MATLAB计算引擎库函数 347
14.3.3 C/C++调用MATLAB引擎 348
14.4 MATLAB编译器 352
14.4.1 MATLAB编译器的安装和设置 353
14.4.2 MATLAB编译器的使用 354
14.4.3 独立应用程序 356
第15章 MATLAB基础计算技巧 365
15.1 MATLAB数组创建与重构技巧 365
15.2 MATLAB数据类型使用技巧 371
15.3 MATLAB数值计算技巧 373
15.4 MATLAB文件读取操作技巧 375
15.5 MATLAB绘图技巧 376
第16章 MATLAB编程技巧 379
16.1 MATLAB编程风格 379
16.1.1 命名规则 379
16.1.2 文件与程序结构 381
16.1.3 基本语句 382
16.1.4 排版、注释与文档 385
16.2 MATLAB编程注意事项 387
16.3 内存的使用 389
16.4 提高MATLAB运行效率 390
16.4.1 提高运行效率基本原则 390
16.4.2 提高运行效率举例 392
第17章 MATLAB在数学建模中的应用 395
17.1 MATLAB蒙特卡罗模拟 395
17.1.1 蒙特卡罗方法简介 395
17.1.2 蒙特卡罗方法编程示例 396
17.2 MATLAB灰色系统理论应用 398
17.2.1 GM(1,1)预测模型简介 398
17.2.2 灰色预测计算实例 399
17.3 MATLAB模糊聚类分析 401
17.3.1 模糊聚类分析简介 401
17.3.2 模糊聚类分析应用示例 402
17.4 MATLAB层次分析法应用 406
17.4.1 层次分析法简介 406
17.4.2 层次分析法的应用 409