第1部分 1
第1章 MATLAB 6的安装和运行 3
1.1 安装MATLAB 6 3
1.1.1 安装MATLAB 6的系统需求 3
1.1.2 开始安装 4
1.1.3 目录结构 6
1.2 运行MATLAB之前 7
1.2.1 PDF文档的处理 7
1.2.2 Windows NT/2000的启动问题 7
1.2.3 用传统界面启动 7
1.2.4 与3D游戏软件的冲突问题 8
1.2.5 与P4处理器的兼容性问题 8
1.3 启动MATLAB 9
1.3.1 初次启动MATLAB 9
1.3.2 运行第一个程序 11
1.4 网络安装 12
1.4.1 什么是网络安装 12
1.4.2 FlexLM简介 12
1.4.3 网络安装的具体步骤 13
1.4.4 客户机的设置 14
第2章 MatrixVB---VB中的MATLAB矩阵函数库 15
2.1 MatrixVB初步 15
2.1.1 准备工作 15
2.1.2 查看一个矩阵 16
2.1.3 Fractals图像的计算和显示 18
2.2 矩阵 20
2.2.1 矩阵的生成 20
2.2.2 对矩阵元素的操作 22
2.2.3 矩阵的属性和操作 23
2.2.4 保存和加载矩阵 24
2.3 运算符号 25
2.3.1 算术运算符 25
2.3.2 比较运算符 25
2.3.3 串联运算符 26
2.3.4 逻辑运算符 27
2.4 图形处理 28
2.4.1 绘制图形 28
2.4.2 在一个VisualBasic窗口中画图 30
2.4.3 图形菜单 31
2.5 应用举例 34
2.5.1 多功能计算器 34
2.5.2 矩阵的行列式计算 37
2.5.3 快速Fourier变换 38
2.5.4 线性系统分析 38
2.5.5 特征值计算 38
2.5.6 复矩阵运算:求多项式的根 39
2.5.7 多项式拟合 39
2.5.8 滤波 40
2.5.9 随机数操作 40
2.5.10 素数序列 41
2.5.11 矩阵的LU分解 41
2.5.12 奇异值分解 41
2.5.13 线性规划 42
第3章 ExceIlink--Excel与MATLAB的链接桥梁 44
3.1 Excellink初步 44
3.1.1 Excellink简介 44
3.1.2 运行环境需求 44
3.1.3 Excellink的安装 44
3.1.4 设置Excellink的自动启动 46
3.1.5 设置Excellink的手动启动 47
3.1.6 终止Excellink的运行 48
3.2 Excellink的函数 48
3.2.1 连接管理函数 48
3.2.2 数据管理函数 49
3.3 Excellink应用举例 49
3.3.1 回归和曲线拟合 50
3.3.2 数据插值 54
3.3.3 利用贝努利模型对股票进行定价 56
3.3.4 金融证券领域的计算 57
3.3.5 债券的现金流量分析 60
3.4 Excellink的使用技巧和注意事项 62
3.4.1 关于语法 62
3.4.2 关于工作表 63
3.4.3 宏 64
3.4.4 关于数据类型 66
3.4.5 关于日期 66
3.4.6 关于己保存的数据表 66
第4章 MATLAB Web Server的配置和应用 67
4.1 MATLAB Web Server的安装 67
4.2 ApacheWeb Server的安装和配置 67
4.2.1 下载和安装Apache 67
4.2.2 测试和运行Apache 68
4.2.3 设置CGI目录的执行权限 69
4.2.4 设置icons目录 69
4.3 配置MATLABWeb Server 70
4.3.1 系统配置文件 70
4.3.2 应用程序信息 71
4.4 运行MATLABWeb Server的演示程序 72
4.5 MATLAB Web Server编程 73
4.5.1 简介 73
4.5.2 通过html输入参数 74
4.5.3 编写MATLAB Web Server应用程序 76
4.5.4 编写输出模板html文件 77
4.6 编程实例 77
4.6.1 MATLAB程序 77
4.6.2 输出模板html文件 78
4.6.3 数组的输出 79
4.6.4 图片的输出 81
4.7 MATLAB Web Server编程注意事项 85
第5章 MATLAB的数据结构和编程技巧 86
5.1 MATLAB数据结构简介 86
5.2 多维数组 86
5.3 结构:struct 89
5.3.1 定义结构 90
5.3.2 结构数据的索引 93
5.3.3 结构数组的维数 94
5.3.4 结构数组的域 95
5.3.5 结构的嵌套 95
5.4 单元数组:cellarray 96
5.4.1 定义单元数组 96
5.4.2 从单元数组中获取数据 97
5.4.3 单元的删除 98
5.4.4 单元数组内容的重排 98
5.4.5 单元数组的嵌套 99
5.5 字符数组 100
5.6 类:class 101
5.6.1 建立一个类 101
5.6.2 在类中引用方法 105
5.6.3 自定义类的设计 107
5.6.4 类的继承和集成 107
5.7 MATLAB的编程技巧 108
5.7.1 MATLAB矩阵数据索引 108
5.7.2 MATLAB中的向量化处理 114
5.7.3 基于网格的函数计算 116
5.7.4 函数句柄的使用 118
5.7.5 函数的函数(Function Functions) 119
第6章 MATLAB图形用户界面编程 121
6.1 标准图形界面工具 121
6.1.1 消息对话框:msgbox 121
6.1.2 警告对话框:warndlg 123
6.1.3 输入对话框:inputdlg 123
6.1.4 提问对话框:questdlg 125
6.1.5 列表对话框:listdlg 127
6.1.6 进度指示条:waitbar 128
6.2 图形用户界面的设计 129
6.2.1 图形用户界面设计工具:GUIDE 129
6.2.2 布局工具 130
6.2.3 菜单编辑工具 133
6.3 标准控件及其属性 134
6.3.1 属性编辑器和对象浏览器 134
6.3.2 PushButton、 Toggle Button和Radio Button 135
6.3.3 EditText和Static Text 135
6.3.4 Slider 135
6.3.5 Listbox和PopupMenu 136
6.3.6 Frame、Axes和Figure 136
6.3.7 为控件指定弹出式菜单 137
6.4 程序结构和回调函数 137
6.4.1 文件的保存 137
6.4.2 各种回调函数 138
6.4.3 回调函数的调用次序 140
6.5 编程实例 141
6.5.1 WAV文件浏览和手工端点标定工具---MCUT 141
6.5.2 用GUIDE设计MCUT的布局 142
6.5.3 代码结构 143
6.5.4 波形和端点标定线的显示 146
6.5.5 用鼠标拖动端点标定线 146
6.5.6 波形的缩放 148
6.5.7 完整的回调函数处理程序 149
6.6 GUIDE使用小结 155
第2部分 157
第7章 引擎--C调用MATLAB 159
7.1 调用MATLAB最直接的途径:engine 159
7.2 配置编译器 160
7.2.1 编译器mex的配置 160
7.2.2 mex编译引擎程序的配置文件 161
7.2.3 编译和连接引擎程序 162
7.3 编译engine程序 162
7.3.1 一个比较复杂的例子 162
7.3.2 编译和运行 165
7.4 engineAPI详解 166
7.4.1 引擎的打开和关闭 166
7.4.2 发送命令字符串 167
7.4.3 获取MATLAB命令窗口的输出 167
7.4.4 读写MATLAB数组 167
7.5 mxArray的操作 168
7.5.1 创建和清除MATLAB数组 168
7.5.2 管理数组的维数 168
7.5.3 判断数组类型 169
7.5.4 管理数组的数据 169
7.6 VC中编译engine程序 170
7.6.1 问题的产生 170
7.6.2 VC编译环境的设置 170
7.6.3 老版本的问题 171
7.6.4 例子 172
7.7 调用engine时隐含MATLAB窗口 174
第8章 MATLAB可执行程序 175
8.1 MATLAB可执行程序-mex 175
8.2一个简单的mex程序 175
8.2.1 Hello World程序 175
8.2.2 编译hello.c 176
8.2.3 hello.dll程序的执行 176
8.2.4 为hello.dll添加帮助 177
8.3 接口函数mexFunction 177
8.3.1 MATLAB函数调用格式 177
8.3.2 mexFunction接口描述 178
8.3.3 验证输入变量的个数 178
8.3.4 验证输入变量的类型 179
8.3.5 获取输入变量的数据 179
8.3.6 输出变量的生成 179
8.3.7 为输出变量填充数据 180
8.4 较为复杂的例子 180
8.5 多维数组中的数据存取 182
8.6 在VC中编译mex程序 183
8.6.1 VC中mex程序的建立和设置 183
8.6.2 实例一:Hello World程序 187
8.6.3 实例二:MFC版本的Hello World程序 187
8.6.4 实例三:含有Windows对话框的mex程序 188
8.7 mex程序的调试 195
8.7.1 简单的调试技术 195
8.7.2 在VC环境中调试mex程序 195
第9章 MATLAB数学库和图形库 198
9.1 MATLAB程序的编译 198
9.1.1 MATLAB数学库和图形库简介 198
9.1.2 mbuild命令的格式 200
9.1.3 mcc命令的格式 200
9.2 mcc操作实例 201
9.2.1 用mcc将.m程序编译为mex程序 201
9.2.2 用mcc将. m程序编译为exe程序 202
9.2.3 编译带有图形功能的.m文件为exe程序 204
9.2.4 发行 206
9.3 MATLAB数学库编程指南 207
9.3.1 MATLAB C++数学库编程简介 207
9.3.2 mwArray的初始化 209
9.3.3 结构(struct)的操作 212
9.3.4 调用MATLAB C++数学库的函数 213
9.3.5 MATLAB C++数学库函数实现feval 216
9.4 在VC中嵌入mcc生成的代码 218
9.4.1 不含图形功能的例子 218
9.4.2 带有图形功能的例子 223
9.4.3 带有图形库代码在MFC应用程序中的例子 230
第10章 MATLAB Ruintime Server 234
10.1 MATLABRuntimeServer简介 234
10.1.1 MATLABRuntime Server的特点 234
10.1.2 两类MATLABRuntime应用程序 235
10.1.3 安装和设置Runtime Server 235
10.1.4 开发Runtime Server应用程序的注意事项 236
10.2 MATLABRuntimeGUI应用程序的设计 239
10.2.1 RuntimeGUI程序的结构 239
10.2.2 编译RuntimeGUI应用程序 243
10.2.3 RuntimeGUI程序的仿真运行和调试 244
10.2.4 实例分析 245
10.3 MATLABRuntimeServer程序的打包 250
10.3.1 启动画面的定制 250
10.3.2 自动打包 250
10.4 MATLABRuntime Engine程序 253
10.4.1 Runtime Engine程序简介 253
10.4.2 Runtime Engine应用程序设计 254
10.4.3 Runtime Engine Server的注册 255
第11章 MATLAB访问系统硬件 258
11.1 MATLAB访问串行口 258
11.1.1 串行口类serial简介 258
11.1.2 串口对象的属性 259
11.1.3 打开、关闭和清除串口对象 260
11.1.4 串口的写操作 261
11.1.5 串口的读操作 262
11.1.6 串口的数据流控制 264
11.1.7 用MATLAB发送手机短消息 265
11.2 MATLAB的直接端口操作 269
11.2.1 实现端口读操作的mex程序 269
11.2.2 实现端口写操作的mex程序 271
11.2.3 该方法的局限性 272
11.3 Windows9x设备驱动程序的编写和调用 272
11.3.1 Windowws设备驱动程序简介 272
11.3.2 设备驱动程序的开发工具 273
11.3.3 用QuickVxD生成一个VxD框架程序 275
11.3.4 一个实现I/O端口访问的VxD 279
11.3.5 编译和连接VxD 281
11.3.6 在mex程序中调用VxD 282
11.3.7 小节 286
第3部分 287
第12章 MATLAB录音工具 289
12.1 MATLAB的音频信号处理工具 289
12.2 语音信号的特征及其端点检测 291
12.3 MATLAB的语音端点检测算法 293
12.3.1 语音信号的分帧 293
12.3.2 短时能量的计算 294
12.3.3 过零率的计算 295
12.3.4 端点检测的流程 296
12.3.5 实际的端点检测算法 296
12.4 实时录音和端点检测--mex程序 300
12.4.1 Windows音频输入接口函数 300
12.4.2 录音程序的代码 304
12.4.3 mex程序接口代码 316
12.4.4 录音程序MatWave的使用 319
12.5 实时录音和端点检测--ActiveX控件 320
12.5.1 MATLAB与ActiveX控件 320
12.5.2 用VC建立ActiveX控件 324
12.5.3 启动和停止录音的代码 325
12.5.4 读取语音数据的代码 326
12.5.5 编译和注册控件 328
12.5.6 在MATLAB中使用录音控件 329
第13章 基于MATLAB的语音识别系统 330
13.1 语音识别简介 330
13.1.1 语音识别系统的分类 330
13.1.2 语音识别系统的基本构成 331
13.2 语音识别的参数 331
13.2.1 线性预测系数 331
13.2.2 线性预测倒谱系数 334
13.2.3 MFCC系数 336
13.2.4 完整的参数计算流程 338
13.3 特定人语音识别算法--DTW算法 340
13.3.1 DTW算法原理 340
13.3.2 DTW算法的实现 342
13.3.3 DTW的高效算法 345
13.4 非特定人语音识别算法---HMM 349
13.4.1 HMM的原理 349
13.4.2 前向概率和后向概率--HMM的输出概率计算 352
13.4.3 识别算法--Viterbi解码 354
13.4.4 HMM参数训练算法Baum-Welch 355
13.4.5 多观察序列的训练算法 357
13.4.6 HMM算法的MATLAB实现 358
13.5 其他形式的HMM 372