MATLAB扩展编程
2002-6-1
清华大学
何强,何英
372
557000
无
本书以MATLAB扩展编程及其应用实例为主线,以MATLAB与C程序、Visual Basic、Excel、网络和系统硬件的接口为核心,采用图文并茂的方式、简捷明快的手法和通俗易懂的语言,配合大量的代码实例以及一个简单的语音识别系统的具体实现,系统介绍了MATLAB的新特性、常用的代码优化方法和功能扩展途径。全书分为3部分,共13章。第1部分(第1章—第6章):MATLAB 6的安装和运行、MatrixVB、Excellink、MATLAB Web Server、MATLAB的数据结构和编程技巧、MATLAB图形用户界面编程:第2部分(第7章—第11章):MATLAB引擎、MATLAB可执行程序、MATLAB C++数学库和图形库、MATLAB Runtime Server、MATLAB访问系统硬件;第3部分(第12章、第13章):MATLAB的录音工具、基于MATLAB的语音识别系统。
本书面向有一定MATLAB、C/C++语言编程基础的理工科学生、科研人员和教学工作者,既是新手进阶提高的读物,又是中高级MATLAB用户的必备手册。
第1部分
第1章 MATLAB 6的安装和运行
1.1 安装MATLAB 6
1.1.1 安装MATLAB 6的系统需求
1.1.2 开始安装
1.1.3 目录结构
1.2 运行MATLAB之前
1.2.1 PDF文档的处理
1.2.2 Windows NT/2000的启动问题
1.2.3 用传统界面启动
1.2.4 与3D游戏软件的冲突问题
1.2.5 与P4处理器的兼容性问题
1.3 启动MATLAB
1.3.1 初次启动MATLAB
1.3.2 运行第一个程序
1.4 网络安装
1.4.1 什么是网络安装
1.4.2 FlexLM简介
1.4.3 网络安装的具体步骤
1.4.4 客户机的设置
第2章 MatrixVB---VB中的MATLAB矩阵函数库
2.1 MatrixVB初步
2.1.1 准备工作
2.1.2 查看一个矩阵
2.1.3 Fractals图像的计算和显示
2.2 矩阵
2.2.1 矩阵的生成
2.2.2 对矩阵元素的操作
2.2.3 矩阵的属性和操作
2.2.4 保存和加载矩阵
2.3 运算符号
2.3.1 算术运算符
2.3.2 比较运算符
2.3.3 串联运算符
2.3.4 逻辑运算符
2.4 图形处理
2.4.1 绘制图形
2.4.2 在一个VisualBasic窗口中画图
2.4.3 图形菜单
2.5 应用举例
2.5.1 多功能计算器
2.5.2 矩阵的行列式计算
2.5.3 快速Fourier变换
2.5.4 线性系统分析
2.5.5 特征值计算
2.5.6 复矩阵运算:求多项式的根
2.5.7 多项式拟合
2.5.8 滤波
2.5.9 随机数操作
2.5.10 素数序列
2.5.11 矩阵的LU分解
2.5.12 奇异值分解
2.5.13 线性规划
第3章 ExceIlink--Excel与MATLAB的链接桥梁
3.1 Excellink初步
3.1.1 Excellink简介
3.1.2 运行环境需求
3.1.3 Excellink的安装
3.1.4 设置Excellink的自动启动
3.1.5 设置Excellink的手动启动
3.1.6 终止Excellink的运行
3.2 Excellink的函数
3.2.1 连接管理函数
3.2.2 数据管理函数
3.3 Excellink应用举例
3.3.1 回归和曲线拟合
3.3.2 数据插值
3.3.3 利用贝努利模型对股票进行定价
3.3.4 金融证券领域的计算
3.3.5 债券的现金流量分析
3.4 Excellink的使用技巧和注意事项
3.4.1 关于语法
3.4.2 关于工作表
3.4.3 宏
3.4.4 关于数据类型
3.4.5 关于日期
3.4.6 关于己保存的数据表
第4章 MATLAB Web Server的配置和应用
4.1 MATLAB Web Server的安装
4.2 ApacheWeb Server的安装和配置
4.2.1 下载和安装Apache
4.2.2 测试和运行Apache
4.2.3 设置CGI目录的执行权限
4.2.4 设置icons目录
4.3 配置MATLABWeb Server
4.3.1 系统配置文件
4.3.2 应用程序信息
4.4 运行MATLABWeb Server的演示程序
4.5 MATLAB Web Server编程
4.5.1 简介
4.5.2 通过html输入参数
4.5.3 编写MATLAB Web Server应用程序
4.5.4 编写输出模板html文件
4.6 编程实例
4.6.1 MATLAB程序
4.6.2 输出模板html文件
4.6.3 数组的输出
4.6.4 图片的输出
4.7 MATLAB Web Server编程注意事项
第5章 MATLAB的数据结构和编程技巧
5.1 MATLAB数据结构简介
5.2 多维数组
5.3 结构:struct
5.3.1 定义结构
5.3.2 结构数据的索引
5.3.3 结构数组的维数
5.3.4 结构数组的域
5.3.5 结构的嵌套
5.4 单元数组:cellarray
5.4.1 定义单元数组
5.4.2 从单元数组中获取数据
5.4.3 单元的删除
5.4.4 单元数组内容的重排
5.4.5 单元数组的嵌套
5.5 字符数组
5.6 类:class
5.6.1 建立一个类
5.6.2 在类中引用方法
5.6.3 自定义类的设计
5.6.4 类的继承和集成
5.7 MATLAB的编程技巧
5.7.1 MATLAB矩阵数据索引
5.7.2 MATLAB中的向量化处理
5.7.3 基于网格的函数计算
5.7.4 函数句柄的使用
5.7.5 函数的函数(Function Functions)
第6章 MATLAB图形用户界面编程
6.1 标准图形界面工具
6.1.1 消息对话框:msgbox
6.1.2 警告对话框:warndlg
6.1.3 输入对话框:inputdlg
6.1.4 提问对话框:questdlg
6.1.5 列表对话框:listdlg
6.1.6 进度指示条:waitbar
6.2 图形用户界面的设计
6.2.1 图形用户界面设计工具:GUIDE
6.2.2 布局工具
6.2.3 菜单编辑工具
6.3 标准控件及其属性
6.3.1 属性编辑器和对象浏览器
6.3.2 PushButton、 Toggle Button和Radio Button
6.3.3 EditText和Static Text
6.3.4 Slider
6.3.5 Listbox和PopupMenu
6.3.6 Frame、Axes和Figure
6.3.7 为控件指定弹出式菜单
6.4 程序结构和回调函数
6.4.1 文件的保存
6.4.2 各种回调函数
6.4.3 回调函数的调用次序
6.5 编程实例
6.5.1 WAV文件浏览和手工端点标定工具---MCUT
6.5.2 用GUIDE设计MCUT的布局
6.5.3 代码结构
6.5.4 波形和端点标定线的显示
6.5.5 用鼠标拖动端点标定线
6.5.6 波形的缩放
6.5.7 完整的回调函数处理程序
6.6 GUIDE使用小结
第2部分
第7章 引擎--C调用MATLAB
7.1 调用MATLAB最直接的途径:engine
7.2 配置编译器
7.2.1 编译器mex的配置
7.2.2 mex编译引擎程序的配置文件
7.2.3 编译和连接引擎程序
7.3 编译engine程序
7.3.1 一个比较复杂的例子
7.3.2 编译和运行
7.4 engineAPI详解
7.4.1 引擎的打开和关闭
7.4.2 发送命令字符串
7.4.3 获取MATLAB命令窗口的输出
7.4.4 读写MATLAB数组
7.5 mxArray的操作
7.5.1 创建和清除MATLAB数组
7.5.2 管理数组的维数
7.5.3 判断数组类型
7.5.4 管理数组的数据
7.6 VC中编译engine程序
7.6.1 问题的产生
7.6.2 VC编译环境的设置
7.6.3 老版本的问题
7.6.4 例子
7.7 调用engine时隐含MATLAB窗口
第8章 MATLAB可执行程序
8.1 MATLAB可执行程序-mex
8.2一个简单的mex程序
8.2.1 Hello World程序
8.2.2 编译hello.c
8.2.3 hello.dll程序的执行
8.2.4 为hello.dll添加帮助
8.3 接口函数mexFunction
8.3.1 MATLAB函数调用格式
8.3.2 mexFunction接口描述
8.3.3 验证输入变量的个数
8.3.4 验证输入变量的类型
8.3.5 获取输入变量的数据
8.3.6 输出变量的生成
8.3.7 为输出变量填充数据
8.4 较为复杂的例子
8.5 多维数组中的数据存取
8.6 在VC中编译mex程序
8.6.1 VC中mex程序的建立和设置
8.6.2 实例一:Hello World程序
8.6.3 实例二:MFC版本的Hello World程序
8.6.4 实例三:含有Windows对话框的mex程序
8.7 mex程序的调试
8.7.1 简单的调试技术
8.7.2 在VC环境中调试mex程序
第9章 MATLAB数学库和图形库
9.1 MATLAB程序的编译
9.1.1 MATLAB数学库和图形库简介
9.1.2 mbuild命令的格式
9.1.3 mcc命令的格式
9.2 mcc操作实例
9.2.1 用mcc将.m程序编译为mex程序
9.2.2 用mcc将.m程序编译为exe程序
9.2.3 编译带有图形功能的.m文件为exe程序
9.2.4 发行
9.3 MATLAB数学库编程指南
9.3.1 MATLAB C++数学库编程简介
9.3.2 mwArray的初始化
9.3.3 结构(struct)的操作
9.3.4 调用MATLAB C++数学库的函数
9.3.5 MATLAB C++数学库函数实现feval
9.4 在VC中嵌入mcc生成的代码
9.4.1 不含图形功能的例子
9.4.2 带有图形功能的例子
9.4.3 带有图形库代码在MFC应用程序中的例子
第10章 MATLAB Ruintime Server
10.1 MATLABRuntimeServer简介
10.1.1 MATLABRuntime Server的特点
10.1.2 两类MATLABRuntime应用程序
10.1.3 安装和设置Runtime Server
10.1.4 开发Runtime Server应用程序的注意事项
10.2 MATLABRuntimeGUI应用程序的设计
10.2.1 RuntimeGUI程序的结构
10.2.2 编译RuntimeGUI应用程序
10.2.3 RuntimeGUI程序的仿真运行和调试
10.2.4 实例分析
10.3 MATLABRuntimeServer程序的打包
10.3.1 启动画面的定制
10.3.2 自动打包
10.4 MATLABRuntime Engine程序
10.4.1 Runtime Engine程序简介
10.4.2 Runtime Engine应用程序设计
10.4.3 Runtime Engine Server的注册
第11章 MATLAB访问系统硬件
11.1 MATLAB访问串行口
11.1.1 串行口类serial简介
11.1.2 串口对象的属性
11.1.3 打开、关闭和清除串口对象
11.1.4 串口的写操作
11.1.5 串口的读操作
11.1.6 串口的数据流控制
11.1.7 用MATLAB发送手机短消息
11.2 MATLAB的直接端口操作
11.2.1 实现端口读操作的mex程序
11.2.2 实现端口写操作的mex程序
11.2.3 该方法的局限性
11.3 Windows9x设备驱动程序的编写和调用
11.3.1 Windowws设备驱动程序简介
11.3.2 设备驱动程序的开发工具
11.3.3 用QuickVxD生成一个VxD框架程序
11.3.4 一个实现I/O端口访问的VxD
11.3.5 编译和连接VxD
11.3.6 在mex程序中调用VxD
11.3.7 小节
第3部分
第12章 MATLAB录音工具
12.1 MATLAB的音频信号处理工具
12.2 语音信号的特征及其端点检测
12.3 MATLAB的语音端点检测算法
12.3.1 语音信号的分帧
12.3.2 短时能量的计算
12.3.3 过零率的计算
12.3.4 端点检测的流程
12.3.5 实际的端点检测算法
12.4 实时录音和端点检测--mex程序
12.4.1 Windows音频输入接口函数
12.4.2 录音程序的代码
12.4.3 mex程序接口代码
12.4.4 录音程序MatWave的使用
12.5 实时录音和端点检测--ActiveX控件
12.5.1 MATLAB与ActiveX控件
12.5.2 用VC建立ActiveX控件
12.5.3 启动和停止录音的代码
12.5.4 读取语音数据的代码
12.5.5 编译和注册控件
12.5.6 在MATLAB中使用录音控件
第13章 基于MATLAB的语音识别系统
13.1 语音识别简介
13.1.1 语音识别系统的分类
13.1.2 语音识别系统的基本构成
13.2 语音识别的参数
13.2.1 线性预测系数
13.2.2 线性预测倒谱系数
13.2.3 MFCC系数
13.2.4 完整的参数计算流程
13.3 特定人语音识别算法--DTW算法
13.3.1 DTW算法原理
13.3.2 DTW算法的实现
13.3.3 DTW的高效算法
13.4 非特定人语音识别算法---HMM
13.4.1 HMM的原理
13.4.2 前向概率和后向概率--HMM的输出概率计算
13.4.3 识别算法--Viterbi解码
13.4.4 HMM参数训练算法Baum-Welch
13.4.5 多观察序列的训练算法
13.4.6 HMM算法的MATLAB实现
13.5 其他形式的HMM
无