第1章 MATLAB概述 1
1.1 MATLAB简介 1
1.1.1 MATLAB发展历程 1
1.1.2 MATLAB体系结构 3
1.1.3 MATLAB产品家族 4
1.2 MATLAB的安装与运行 6
1.2.1 MATLAB运行环境要求 7
1.2.2 MATLAB的安装 7
1.2.3 MATLAB的启动与退出 10
1.3 MATLAB集成开发环境 11
1.3.1 MATLAB的主菜单 11
1.3.2 MATLAB的工具栏 15
1.3.3 MATLAB的窗口 15
1.4 MATLAB帮助和演示系统 17
1.4.1 命令窗口帮助系统 17
1.4.2 联机帮助系统 18
1.4.3 联机演示系统 19
思考与练习 20
第2章 MATLAB基础知识与基本运算 21
2.1 MATLAB数据类型 21
2.1.1 数值类型 21
2.1.2 逻辑类型 24
2.1.3 字符和字符串 25
2.1.4 函数句柄 28
2.1.5 结构体 29
2.1.6 单元数组 32
2.2 基本运算符 36
2.2.1 算术运算符 36
2.2.2 关系运算符 36
2.2.3 逻辑运算符 37
2.2.4 运算符优先级 38
2.3 数组及其运算 38
2.3.1 数组的创建 39
2.3.2 数组元素的访问 40
2.3.3 数组操作 41
2.3.4 数组运算 47
2.3.5 多维数组 48
2.4 矩阵及其运算 50
2.4.1 特殊矩阵 50
2.4.2 稀疏矩阵 51
2.4.3 矩阵运算 53
思考与练习 54
第3章 MATLAB程序设计基础 55
3.1 M文件介绍 55
3.1.1 M文件编辑器 55
3.1.2 M文件的基本内容 56
3.1.3 脚本M文件 57
3.1.4 函数M文件 58
3.2 流程控制 59
3.2.1 顺序结构 59
3.2.2 条件控制结构 59
3.2.3 循环控制结构 62
3.2.4 程序终止控制 64
3.2.5 错误控制结构 65
3.2.6 人机交互命令 66
3.3 变量和函数 68
3.3.1 全局变量和局部变量 68
3.3.2 变量的传递 70
3.3.3 主函数和子函数 73
3.3.4 私有函数 73
3.3.5 嵌套函数 73
3.3.6 重载函数 74
3.3.7 匿名函数 75
3.4 串演算函数 75
3.4.1 eval函数 75
3.4.2 inline函数 76
3.5 内存的使用 77
3.5.1 内存管理函数 77
3.5.2 高效使用内存的策略 78
3.6 MATLAB面向对象程序设计 80
3.6.1 面向对象基础 80
3.6.2 MATLAB类的定义 81
3.6.3 MATLAB对象的使用 86
3.6.4 面向对象程序实例 87
思考与练习 89
第4章 MATLAB数据文件I/O 91
4.1 导入向导的使用 91
4.2 文件的基本操作 94
4.2.1 文件的打开与关闭 94
4.2.2 文件的位置控制 96
4.3 读写MAT文件 97
4.3.1 MAT文件的写入 98
4.3.2 MAT文件的读取 99
4.4 读写二进制文件 99
4.4.1 二进制文件的写入 99
4.4.2 二进制文件的读取 101
4.5 读写文本文件 102
4.5.1 文本文件的写入 103
4.5.2 文本文件的读取 105
4.6 操作音频/视频文件 107
4.6.1 音频文件的导入导出与播放 107
4.6.2 视频文件的导入导出与播放 110
思考与练习 111
第5章 MATLAB图形绘制 112
5.1 图形绘制基本流程 112
5.2 二维图形的绘制 114
5.2.1 绘制二维曲线 114
5.2.2 设置曲线样式 115
5.2.3 添加图形标注 117
5.2.4 定制坐标轴 118
5.2.5 多图形绘制 119
5.2.6 子图绘制 120
5.2.7 特殊图形绘制 121
5.3 三维图形的绘制 124
5.3.1 绘制三维曲线 124
5.3.2 绘制三维曲面 125
5.3.3 绘制特殊三维图形 127
5.3.4 三维图形显示控制 129
思考与练习 134
第6章 MATLAB高级图形用户界面设计 135
6.1 句柄图形对象 135
6.1.1 句柄图形结构 136
6.1.2 图形对象的属性 138
6.1.3 图形对象的创建 143
6.1.4 图形对象创建实例 145
6.2 图形用户界面设计原则和一般步骤 146
6.2.1 设计原则 147
6.2.2 设计步骤 147
6.3 全命令行的M文件编程实现GUI设计 147
6.3.1 回调函数的编写 148
6.3.2 图形用户界面设计实例 148
6.4 GUIDE辅助的GUI设计 156
6.4.1 GUIDE介绍 156
6.4.2 交互组件 159
6.4.3 设计菜单 163
6.4.4 编写回调函数 165
思考与练习 169
第7章 MATLAB与Word和Excel的组合使用 171
7.1 Notebook简介 171
7.1.1 Notebook的配置 171
7.1.2 Notebook的启动 172
7.2 在MS-Word中使用Notebook 173
7.2.1 Notebook菜单功能 174
7.2.2 输入单元(组)和输出单元 174
7.2.3 自初始化单元 177
7.2.4 Notebook菜单的其他常用选项 177
7.2.5 输出单元的格式控制 179
7.3 Excel Link简介 180
7.3.1 Excel Link的配置与安装 181
7.3.2 Spreadsheet Link EX工具栏 182
7.4 Excel Link函数 185
7.4.1 连接管理函数 185
7.4.2 数据管理函数 187
7.4.3 使用Excel Link函数的注意事项 187
7.5 Excel Link应用实例 189
思考与练习 193
第8章 MATLAB与C/C++混合编程 194
8.1 MATLAB混合编程概述 194
8.1.1 MATLAB外部接口简介 194
8.1.2 常用MATLAB与C/C++混合编程方法 196
8.2 使用MAT文件实现数据交互 196
8.2.1 MAT文件简介 196
8.2.2 操作MAT文件的MATLAB API 197
8.2.3 编译和链接C/C++MAT程序的环境配置 198
8.2.4 使用MAT文件实现数据交互实例 200
8.3 使用共享库实现混合编程 203
8.3.1 MATLAB调用共享库函数 203
8.3.2 给共享库中的函数传递参数 205
8.3.3 使用libpointer/libstruct对象传递参数 207
8.3.4 使用共享库实现混合编程实例 208
8.4 使用MEX文件实现混合编程 209
8.4.1 MEX文件简介 210
8.4.2 使用MEX文件的环境配置 211
8.4.3 C语言MEX函数 213
8.4.4 C语言创建MEX文件实例 214
8.4.5 C++语言创建MEX文件实例 215
8.5 使用MATLAB引擎实现混合编程 217
8.5.1 MATLAB引擎简介 218
8.5.2 MATLAB引擎函数 218
8.5.3 MATLAB引擎的使用 219
8.5.4 VS2005中开发MATLAB引擎程序实例 220
8.6 使用MATLAB编译器实现混合编程 222
8.6.1 MATLAB编译器简介 222
8.6.2 编译器的安装与配置 224
8.6.3 编译和部署MATLAB程序 225
8.6.4 使用编译器混合编程实例 226
思考与练习 231
第9章 MATLAB与Java混合编程 232
9.1 MATLAB的Java接口与MATLAB Builder JA 232
9.1.1 MATLAB Java接口简介 232
9.1.2 MATLAB Builder JA简介 232
9.2 在MATLAB环境中调用Java 233
9.2.1 在MATLAB中访问Java类的准备工作 233
9.2.2 创建和使用Java对象 235
9.2.3 在MATLAB中使用Java数组 238
9.2.4 Java对象与MATLAB数据交互 239
9.3 在Java环境中调用MATLAB 242
9.3.1 MATLAB Builder JA安装与环境配置 242
9.3.2 创建Java组件 244
9.3.3 发布Java组件 246
9.3.4 在Java程序中调用Java组件 246
9.4 MATLAB与Java混合编程实例 250
9.4.1 MATLAB环境调用Java实例 250
9.4.2 Java环境调用MATLAB实例 251
思考与练习 256
第10章 MATLAB科学计算 257
10.1 数据插值 257
10.1.1 一维插值 257
10.1.2 二维插值和三维插值 259
10.1.3 数据插值实例 260
10.2 曲线拟合 263
10.2.1 多项式基础 264
10.2.2 多项式曲线拟合应用实例 267
10.3 微积分 269
10.3.1 积分 269
10.3.2 导数 271
10.3.3 极限 272
10.3.4 级数求和 273
10.3.5 泰勒级数展开 274
10.4 线性方程组求解 275
10.4.1 直接法 275
10.4.2 矩阵求逆法 276
10.4.3 矩阵分解法 276
10.4.4 迭代法 278
10.5 非线性方程(组)求解 280
10.5.1 非线性方程的求根 281
10.5.2 非线性方程组的数值解法 282
10.6 微分方程求解 285
10.6.1 常微分方程求解 285
10.6.2 偏微分方程求解 286
10.6.3 偏微分方程求解实例 287
10.7 最优化问题 290
10.7.1 最优化函数 290
10.7.2 无约束最优化 290
10.7.3 有约束最优化 292
10.7.4 线性规划 293
思考与练习 294
第11章 Simulink仿真 296
11.1 Simulink基本概念 296
11.1.1 Simulink运行方法及编辑窗口 296
11.1.2 Simulink模块库 297
11.1.3 Simulink模块基本操作 298
11.1.4 Simulink仿真参数设置 300
11.2 Simulink子系统建立与封装技术 302
11.2.1 子系统建立 302
11.2.2 条件执行子系统建立 303
11.2.3 子系统封装方法与实例 304
11.3 Simulink仿真命令与回调方法 307
11.3.1 Simulink模型构造与编辑命令 307
11.3.2 Simulink模型仿真命令 308
11.3.3 模型与模块的回调方法 309
11.4 S函数 312
11.4.1 S函数基本概念 312
11.4.2 S函数工作原理 313
11.4.3 用M文件编写S函数 314
11.4.4 S函数创建器的使用 316
11.5 Stateflow原理与应用 317
11.5.1 Stateflow应用基础 317
11.5.2 Stateflow建模实例 318
11.6 Simulink模型的实时代码生成技术 321
11.6.1 Real-Time Workshop介绍 321
11.6.2 Simulink模型的普通实时代码生成实例 322
思考与练习 324
第12章 MATLAB信号处理 325
12.1 信号处理工具箱基础 325
12.1.1 工具箱简介 325
12.1.2 交互式工具 326
12.1.3 基本的信号处理概念 326
12.1.4 信号产生实例 328
12.2 滤波器设计与实现 329
12.2.1 滤波器的实现和分析 330
12.2.2 频率响应 331
12.2.3 滤波器的设计 334
12.2.4 滤波器设计实例 336
12.2.5 用Filterbuilder GUI设计滤波器 338
12.2.6 滤波器设计和分析GUI 339
12.3 统计信号处理 340
12.3.1 相关和协方差 341
12.3.2 谱估计 341
12.4 信号处理GUI 342
12.4.1 信号观察器 343
12.4.2 滤波器可视化工具 344
12.4.3 频谱观察器 344
12.4.4 噪声的滤波和分析 345
12.5 工具箱中的其他常用处理方法 347
12.5.1 窗 347
12.5.2 参数建模 348
12.5.3 重采样 350
12.5.4 倒谱分析及实例 351
12.5.5 通信应用及实例 351
12.5.6 特殊变换及实例 352
思考与练习 354
第13章 MATLAB数字图像处理 355
13.1 MATLAB图像类型与转换 355
13.1.1 MATLAB图像类型 355
13.1.2 MATLAB图像类型转换 356
13.1.3 MATLAB图像类型转换实例 356
13.2 图像读写和显示 357
13.2.1 图像读写函数 357
13.2.2 图像显示函数 358
13.2.3 图像读写与显示实例 359
13.3 图像变换 360
13.3.1 图像离散傅里叶变换 360
13.3.2 图像离散余弦变换 361
13.3.3 图像离散小波变换 362
13.4 图像增强 364
13.4.1 直接灰度修正 365
13.4.2 直方图均衡化 367
13.4.3 图像噪声消除 368
13.4.4 同态滤波图像增强 373
13.5 图像的数学形态学处理 374
13.5.1 数学形态学简介 375
13.5.2 MATLAB数学形态学函数 375
13.5.3 二值图像形态学分析实例 376
13.5.4 灰度图像形态学分析实例 378
习题与练习 380
第14章 MATLAB通信系统仿真 382
14.1 数字通信系统基本概念 382
14.2 数字调制/解调及其仿真 383
14.2.1 脉冲幅度调制(PAM)信号 384
14.2.2 相位调制(PSK)信号 385
14.2.3 频率调制信号 386
14.2.4 连续相位调制信号 388
14.3 信道编码/译码及其仿真 389
14.3.1 线性分组码 389
14.3.2 循环码 392
14.3.3 卷积码 395
14.4 典型数字通信仿真实例 398
14.4.1 2FSK信号在高斯白噪声信道的传输性能 398
14.4.2 TDMA信号收发系统仿真 400
思考与练习 407