第一篇 基础篇 2
第1章 MATLAB入门 2
1.1 MATLAB简介 2
1.1.1 MATLAB的特点和优势 2
1.1.2 版本升级 3
1.2 安装与卸载 3
1.3 主界面 6
1.3.1 命令窗口(Command Window) 6
1.3.2 其他窗口 9
1.3.3 菜单栏、工具栏和开始按钮 14
1.4 搜索路径 17
1.5 帮助系统 19
1.6 小结 24
第2章 MATLAB矩阵和数组 25
2.1 矩阵的创建 25
2.1.1 直接输入元素创建矩阵 25
2.1.2 调用函数创建特殊矩阵 26
2.2 矩阵间的连接 28
2.2.1 基本连接 28
2.2.2 函数连接 30
2.3 矩阵的扩展 32
2.3.1 扩大矩阵的尺寸 32
2.3.2 缩小矩阵的尺寸 33
2.4 改变矩阵的形状 33
2.5 向量、标量与空矩阵 35
2.5.1 向量 35
2.5.2 标量 37
2.5.3 空矩阵 38
2.6 矩阵元素的寻访 39
2.6.1 双下标寻访 39
2.6.2 单下标寻访 39
2.6.3 寻访多个元素 41
2.7 矩阵信息的获取 42
2.7.1 获取矩阵的数据结构 43
2.7.2 获取矩阵元素的数据类型 43
2.7.3 获取矩阵的尺寸信息 45
2.8 高维数组 46
2.8.1 高维数组的创建 46
2.8.2 高维数组的信息访问 48
2.8.3 高维数组操作函数 49
2.9 小结 52
第3章 MATLAB数据类型 53
3.1 数值类型 53
3.1.1 整数类型 53
3.1.2 双精度浮点类型 55
3.1.3 单精度浮点类型 57
3.1.4 复数 58
3.1.5 无穷和非数 60
3.2 逻辑类型 62
3.2.1 创建逻辑类型 63
3.2.2 逻辑矩阵的应用 63
3.3 字符与字符串 64
3.3.1 创建字符数组 64
3.3.2 字符串的比较 66
3.3.3 字符串的查找与替换 68
3.3.4 字符串与数值类型的互相转换 68
3.4 元胞 69
3.4.1 创建元胞数组 69
3.4.2 字符串元胞数组 72
3.4.3 访问元胞数组内容 73
3.5 构架 74
3.5.1 创建构架数组 74
3.5.2 访问构架数组元素 76
3.6 小结 77
第4章 MATLAB数值运算 78
4.1 矩阵基本运算 78
4.1.1 矩阵的加/减 78
4.1.2 矩阵乘法 79
4.1.3 矩阵除法 80
4.1.4 矩阵的幂 82
4.1.5 矩阵按位运算 83
4.2 关系运算与逻辑运算 86
4.2.1 关系运算符 86
4.2.2 逻辑运算符 88
4.2.3 关系逻辑函数 90
4.3 运算符优先级 91
4.4 小结 92
第5章 绘图 93
5.1 MATLAB绘图功能概述 93
5.2 基本绘图指令 94
5.2.1 基本绘图流程 94
5.2.2 常用绘图函数 95
5.2.3 线型设置 98
5.2.4 多图绘制 100
5.2.5 坐标格式设置 101
5.3 图形标注 103
5.3.1 图形标注概述 104
5.3.2 图形标题 105
5.3.3 坐标轴标签 106
5.3.4 图例设置 107
5.3.5 文本的标注 108
5.3.6 封闭区域的填充 110
5.4 模式化绘图 111
5.4.1 柱状图和面积图 111
5.4.2 饼图 113
5.4.3 直方图 113
5.4.4 离散数据绘图 115
5.4.5 等高线图 116
5.4.6 向量图 117
5.4.7 函数绘图 119
5.5 三维绘图 120
5.5.1 三维图形概述 120
5.5.2 三维基本绘图 121
5.5.3 三维模式化绘图 125
5.5.4 三维图显示控制 131
5.6 小结 141
第二篇 提高篇 144
第6章 图形对象和句柄 144
6.1 MATLAB图形对象 144
6.1.1 图形对象的体系结构 144
6.1.2 根对象 145
6.1.3 图形窗口对象(Figure) 145
6.1.4 用户界面对象(UI Objects) 145
6.1.5 轴对象(Axes) 146
6.1.6 内核对象(Core Objects) 146
6.1.7 绘图对象(Plot Objects) 147
6.1.8 组对象(Group Objects) 147
6.1.9 注释对象(Annotation Objects) 147
6.1.10 MATLAB图形对象的属性 148
6.2 MATLAB对象句柄 148
6.2.1 MATLAB对象句柄的概念 148
6.2.2 对象句柄的寻访 149
6.2.3 使用句柄操作对象 150
6.3 设置和查询对象属性 151
6.3.1 设置对象属性 152
6.3.2 查询对象属性 152
6.3.3 对象默认属性 154
6.4 图形窗口对象(Figure) 157
6.4.1 窗口对象的位置属性 157
6.4.2 窗口对象的色彩属性 158
6.4.3 窗口对象的绘制模式 159
6.4.4 定制图形窗口的光标 159
6.5 轴对象(Axes) 160
6.5.1 轴对象的位置属性 160
6.5.2 轴对象的刻度、刻度标记及坐标轴方向 161
6.5.3 轴对象的多轴重叠 163
6.5.4 轴对象的自动模式属性 165
6.6 图形输出控制 165
6.6.1 定制图形输出的窗口和轴 165
6.6.2 利用newPlot属性定制图形输出的重叠属性 165
6.7 小结 167
第7章 程序设计 168
7.1 M文件 168
7.1.1 M文件编辑器 168
7.1.2 脚本文件(MATLAB scripts)和函数文件(MATLAB functions) 169
7.1.3 M文件结构 175
7.1.4 P-码文件 176
7.2 函数 177
7.2.1 主函数与子函数 177
7.2.2 嵌套函数 179
7.3 变量 182
7.3.1 变量的命名规则 182
7.3.2 变量的分类 183
7.3.3 变量检测函数 185
7.4 程序结构 186
7.4.1 顺序结构 187
7.4.2 循环结构 187
7.4.3 分支结构 191
7.5 程序控制语句 195
7.5.1 结束循环语句 195
7.5.2 错误警告语句 198
7.5.3 输入控制语句 200
7.6 小结 202
第8章 程序调试、优化和出错处理 203
8.1 调试 203
8.1.1 调试的基本任务 203
8.1.2 程序调试的基本方法 206
8.1.3 MATLAB调试器 207
8.1.4 警告和错误信息 211
8.2 性能优化 212
8.2.1 MATLAB性能分析 212
8.2.2 效率优化技术 216
8.2.3 内存优化技术 216
8.3 出错处理 217
8.3.1 错误查询机制 217
8.3.2 错误处理 218
8.4 小结 220
第9章 MATLAB符号计算 221
9.1 符号对象的创建 221
9.1.1 创建符号变量和常量 221
9.1.2 创建符号表达式 223
9.1.3 创建符号矩阵 224
9.1.4 创建符号函数 224
9.1.5 解析型对象到数值型对象的转换 225
9.2 符号表达式操作 227
9.2.1 符号表达式的展开、分解及化简 227
9.2.2 符号表达式的替换 231
9.3 符号函数操作 233
9.3.1 符号函数复合 233
9.3.2 符号函数求反 234
9.3.3 特殊符号函数 235
9.4 符号矩阵操作 235
9.4.1 符号矩阵的代数运算 235
9.4.2 符号矩阵的逻辑运算 238
9.4.3 符号矩阵的行列式 238
9.4.4 符号矩阵的逆 239
9.4.5 符号矩阵的秩 240
9.4.6 符号矩阵的特征分解 241
9.4.7 符号矩阵的SVD分解 243
9.5 符号微积分 245
9.5.1 符号极限 245
9.5.2 符号微分 246
9.5.3 符号积分 248
9.5.4 符号级数展开 250
9.5.5 符号级数求和 251
9.6 符号方程求解 252
9.6.1 一般代数方程 252
9.6.2 线性代数方程组 254
9.6.3 符号常微分方程 256
9.7 小结 259
第三篇 应用篇 262
第10章 数据分析 262
10.1 数据排序分析 262
10.1.1 最大(小)值 262
10.1.2 中位数、分位数 264
10.1.3 排序 266
10.2 数据求和(积)、差分 269
10.2.1 求和 269
10.2.2 求积 270
10.2.3 求累计和、积 271
10.2.4 差分 272
10.3 均值和方差分析 272
10.4 数据预处理 274
10.4.1 缺失数据处理 274
10.4.2 异常值 274
10.5 统计分析 276
10.5.1 几种重要的概率分布 276
10.5.2 随机数的生成 277
10.5.3 数据直方图分析 279
10.5.4 数据统计函数 281
10.6 小结 283
第11章 矩阵分析 284
11.1 矩阵分析的应用背景 284
11.1.1 线性代数方程求解 284
11.1.2 最优化问题 285
11.2 矩阵特征量 285
11.2.1 矩阵的行列式 285
11.2.2 矩阵的逆 286
11.2.3 矩阵的范数 288
11.2.4 矩阵的条件数 290
11.2.5 矩阵的秩 292
11.2.6 矩阵特征值 294
11.3 矩阵分解 295
11.3.1 特征值分解 296
11.3.2 Schur分解 297
11.3.3 Cholesky分解 298
11.3.4 LU分解 299
11.3.5 QR分解 302
11.3.6 SVD分解 303
11.4 矩阵函数 306
11.4.1 矩阵函数的概念 306
11.4.2 常用矩阵函数 306
11.4.3 用户定义矩阵函数 308
11.5 小结 310
第12章 函数分析 311
12.1 函数的表示 311
12.1.1 匿名函数 311
12.1.2 M函数文件 312
12.1.3 匿名函数与M函数文件比较 313
12.1.4 函数句柄 314
12.2 函数的零点 314
12.2.1 问题描述 314
12.2.2 初始区间法求函数零点 314
12.2.3 初始点法求函数零点 316
12.3 数值积分 318
12.3.1 单重积分 318
12.3.2 多重积分 321
12.4 数值微分 323
12.4.1 数值差分与一元数值微分 323
12.4.2 数值梯度与多元数值微分 325
12.5 函数最优化 326
12.5.1 单变量最优化 326
12.5.2 多变量最优化 328
12.6 函数可视化 330
12.6.1 MATLAB函数可视化函数 330
12.6.2 一元函数可视化 330
12.6.3 二元函数可视化 332
12.6.4 极坐标图 334
12.7 小结 335
第13章 高级数值计算 336
13.1 多项式 336
13.1.1 多项式表示 336
13.1.2 矩阵特征多项式 336
13.1.3 多项式求值 337
13.1.4 多项式的根 338
13.1.5 多项式卷积和反卷积 339
13.1.6 多项式微积分 340
13.1.7 有理分式部分和展开 341
13.2 插值 342
13.2.1 一维插值 342
13.2.2 二维插值 345
13.2.3 插值方法 346
13.3 回归分析和曲线拟合 350
13.3.1 问题描述 350
13.3.2 线性回归分析 350
13.3.3 多分量回归分析 353
13.3.4 曲线拟合 354
13.3.5 交互式曲线拟合工具 356
13.4 傅里叶分析 358
13.4.1 FFT和IFFT 358
13.4.2 FFT的幅度和相位 360
13.4.3 傅里叶分析应用实例 361
13.5 常微分方程 363
13.5.1 一阶常微分方程 363
13.5.2 高阶常微分方程 367
13.5.3 ODE函数的选择 369
13.6 小结 371
第14章 用户图形界面(GUI) 372
14.1 两种GUI设计方式 372
14.1.1 GUI对象及层次结构 373
14.1.2 回调函数 374
14.1.3 手工代码式 375
14.1.4 GUIDE式 378
14.1.5 GUIDE界面环境 382
14.2 GUI界面设计 386
14.2.1 界面设计原则 386
14.2.2 窗口和轴 388
14.2.3 菜单 388
14.2.4 控件 390
14.3 GUI程序设计 391
14.3.1 GUIM文件结构剖析 391
14.3.2 GUIDE的数据组织 392
14.3.3 回调函数 393
14.4 GUI应用实例 394
14.4.1 用户需求 395
14.4.2 GUI界面设计 395
14.4.3 GUI程序设计 396
14.4.4 GUI程序发布 397
14.5 小结 397
第四篇 接口篇 400
第15章 文件的I/O操作 400
15.1 低级文件的打开和关闭 400
15.2 读取和写入ASCII文件 401
15.2.1 ASCII文件的读取 401
15.2.2 ASCII文件的写入 404
15.3 读取和写入二进制文件 405
15.3.1 二进制文件的读取 405
15.3.2 二进制文件的写入 406
15.4 文件位置指针 407
15.5 高级文件I/O操作 409
15.6 小结 413
第16章 MATLAB编译器 414
16.1 MATLAB编译器简介 414
16.1.1 MATLAB Compiler 4 414
16.1.2 MATLAB Compiler 4的功能和局限性 416
16.2 安装与设置 416
16.2.1 编译器的安装 416
16.2.2 MCR的安装 417
16.2.3 编译器的设置 418
16.3 编译器的使用 419
16.3.1 MCC选项 419
16.3.2 编译指令 421
16.3.3 独立于MATLAB环境的M程序编译 422
16.4 编译器的独立应用 422
16.4.1 独立C/C++应用的创建 423
16.4.2 独立Windows应用程序的创建 423
16.4.3 独立应用程序的发布 425
16.5 小结 426
第17章 应用程序接口 427
17.1 mxArray数据结构 427
17.2 mx函数 428
17.3 MATLAB中调用C和FORTRAN 429
17.3.1 MEX文件简介 429
17.3.2 MEX配置 430
17.3.3 C语言MEX文件 432
17.3.4 FORTRAN语言MEX文件 433
17.4 MATLAB引擎 434
17.4.1 C语言引擎函数 435
17.4.2 FORTRAN语言引擎函数 439
17.4.3 引擎应用实例 441
17.5 C和FORTRAN调用MATLAB 445
17.5.1 由M程序创建共享函数库(DLL) 445
17.5.2 C/FORTRAN中调用MATLAB 446
17.5.3 应用实例 446
17.6 小结 449
第18章 Notebook和M-book 450
18.1 M-book 450
18.1.1 Notebook的安装和设置 450
18.1.2 创建M-book 451
18.2 细胞 453
18.2.1 细胞和细胞群 453
18.2.2 自初始化细胞 455
18.2.3 计算区 456
18.2.4 细胞的循环运行 459
18.2.5 输出细胞的格式控制 460
18.2.6 Notebook使用注意 462
18.3 小结 463
第五篇 工具箱篇 466
第19章 信号处理工具箱 466
19.1 波形产生 466
19.1.1 常用周期信号 466
19.1.2 常用非周期信号 467
19.1.3 常用序列 469
19.2 IIR滤波器设计 471
19.2.1 滤波器原型设计 471
19.2.2 频率指标转换 475
19.2.3 离散化 477
19.2.4 直接IIR滤波器设计 479
19.3 FIR滤波器设计 482
19.3.1 窗口方法设计 483
19.3.2 多带FIR滤波器设计 484
19.3.3 约束最小二乘法设计 487
19.3.4 任意响应滤波器设计 489
19.4 频谱分析 490
19.4.1 周期图方法 490
19.4.2 Welch方法 493
19.4.3 MTM和MUSIC方法 494
19.4.4 参数化方法 497
19.5 使用SPTool 500
19.5.1 功能概述 500
19.5.2 数据的导入 501
19.5.3 信号查看 503
19.5.4 滤波器设计 504
19.5.5 滤波器查看 507
19.5.6 频谱查看 509
19.6 小结 511
第20章 图像处理工具箱 512
20.1 数字图像基础 512
20.1.1 数字图像的生成 512
20.1.2 图像数据的读/写 514
20.1.3 图像数据的显示 515
20.2 MATLAB图像类型 517
20.2.1 四种常见的图像类型 517
20.2.2 图像类型的相互转换 518
20.3 图像的灰度变换 522
20.3.1 图像的直方图 523
20.3.2 灰度变换 524
20.3.3 直方图均衡 527
20.4 图像的代数运算 528
20.4.1 图像加法 529
20.4.2 图像乘法 529
20.4.3 图像减法 530
20.4.4 图像除法 530
20.5 图像的几何运算 530
20.5.1 图像缩放 531
20.5.2 图像旋转 532
20.5.3 图像裁剪 534
20.6 图像滤波 534
20.6.1 卷积和相关 534
20.6.2 线性滤波 536
20.6.3 排序滤波 539
20.7 小结 541
第21章 SIMULINK工具箱 542
21.1 SIMULINK基础知识 542
21.1.1 安装SIMULINK 542
21.1.2 启动SIMULINK 543
21.1.3 SIMULINK库浏览器 544
21.1.4 模型窗口菜单栏 545
21.1.5 模型窗口工具栏和状态栏 547
21.1.6 SIMULINK简单建模仿真示例 548
21.1.7 SIMULINK帮助 550
21.2 模块操作 552
21.2.1 连接模块 552
21.2.2 模块参数设置 553
21.2.3 信号标签 555
21.2.4 信号标签的传递 555
21.3 仿真设置 557
21.3.1 设置仿真时间 558
21.3.2 设置仿真步长 558
21.3.3 设置仿真算法 559
21.3.4 设置输出选项 561
21.4 连续系统模型实现 562
21.4.1 连续系统数学描述 562
21.4.2 连续系统模型实例 566
21.5 SIMULINK子系统 568
21.5.1 子系统的创建 569
21.5.2 子系统的封装 571
21.6 编写S-函数 575
21.6.1 S-函数的工作原理 575
21.6.2 S-函数的概念 576
21.6.3 S-函数的使用 578
21.6.4 S-函数模板 581
21.6.5 S-函数举例 583
21.7 小结 586