第1章 MATLAB概述 1
1.1 MATLAB的发展历程 1
1.2 MATLAB产品组成及语言特点 2
1.2.1 MATLAB的主要产品构成 2
1.2.2 MATLAB语言的特点 4
1.3 MATLAB7.0的新功能和新产品 5
1.3.1 MATLAB7.0的新功能 5
1.3.2 MATLAB升级及新增的模块 7
1.4 小结 11
第2章 MATLAB程序设计及代码优化 12
2.1 MATLAB的表达式和变量 12
2.1.1 表达式 12
2.1.2 变量 12
2.2 细胞数组与结构数组 12
2.2.1 细胞数组 12
2.2.2 结构数组 13
2.3 类与对象 13
2.4 流程控制 17
2.4.1 for循环结构 17
2.4.2 while循环结构 18
2.4.3 if-else-end分支结构 18
2.4.4 switch-case结构 18
2.4.5 try-catch结构 19
2.5 M文件编程 19
2.6 M文件编程规范 22
2.7 M文件评述器 30
2.8 提高M文件执行效率的技巧 32
2.8.1 矢量化操作 33
2.8.2 给数组预定义维 34
2.8.3 下标或者索引操作 35
2.8.4 尽量多使用函数文件而少使用非脚本文件 35
2.8.5 将循环体中的内容转换为C-MEX 35
2.8.6 内存优化 35
2.9 小结 36
第3章 MATLAB混合编程简介 37
3.1 进行混合编程的出发点 37
3.2 MATLAB应用程序接口简介 37
3.3 几种常见的混合编程方法简介 39
3.3.1 使用MATLAB自带的MATLABCompiler 39
3.3.2 利用MATLAB引擎 40
3.3.3 利用ActiveX控件 40
3.3.4 利用MAT文件 41
3.3.5 C-MEX 41
3.3.6 利用Mideva/Matcom 41
3.3.7 利用Matrix<LIB>实现混合编程 42
3.3.8 利用MATLABAdd-in 42
3.3.9 MATLABCOMBuilder 42
3.3.10MATLAB和Excel混合编程 43
3.4 小结 44
第4章 C-MEX编程 45
4.1 C-MEX简介 45
4.2 MEX文件系统的配置 45
4.3 MEX文件的结构和运行 46
4.3.1 MEX文件结构 46
4.3.2 MEX函数的执行流程 49
4.3.3 MEX文件的结构和使用 50
4.3.4 MEX文件与独立应用程序的区别 50
4.4 C语言MEX函数 51
4.5 C-MEX混合编程 54
4.6 VisualC++中MEX文件的建立和调试 55
4.6.1 VisualC++中MEX程序的建立和环境设置 57
4.6.2 MEX程序的调试 59
4.6.3 MEX独立应用程序的发布 61
4.7 MEX编程实例 61
4.8 小结 67
第5章 通过MATLAB引擎实现混合编程 68
5.1 MATLAB引擎简介 68
5.2 MATLAB引擎库函数 68
5.3 VisualC++调用MATLAB引擎时的环境设置 74
5.4 MATLAB引擎类的封装 79
5.4.1 CMATLABEng类的定义和实现代码 79
5.4.2 CMATLABEng说明 82
5.4.3 CMATLABEng说明和使用方法 84
5.5 应用实例 84
5.6 小结 87
第6章 MAT文件实现数据共享 88
6.1 MAT文件简介 88
6.2 操作MAT文件 88
6.2.1 MAT文件格式 88
6.2.2 操作MAT文件的MATLABAPI 90
6.3 VisualC++调用MAT时的环境设置 96
6.4 实例 97
6.5 小结 107
第7章 利用Mideva实现混合编程 108
7.1 Mideva简介 108
7.2 Mideva的安装 108
7.3 Mideva环境下M文件到dll/exe文件的转换 110
7.4 VisualC++环境下使用Mideva混合编程 111
7.4.1 混合编程环境的设置 112
7.4.2 通过外壳函数调用 112
7.5 Matrix<LIB> 113
7.6 混合编程实例 113
7.7 小结 122
第8章 利用Matrix<LIB>实现混合编程 123
8.1 Matrix<LIB>简介 123
8.2 Matrix<LIB>与VisualC++混合编程 123
8.2.1 Matrix<LIB>的安装 123
8.2.2 VisualC++环境配置 123
8.2.3 初始化库 124
8.3 Matrix<LIB>函数使用参考 124
8.3.1 矩阵操作 125
8.3.2 库常量 128
8.3.3 访问库函数 129
8.3.4 矩阵I/O 130
8.3.5 图形函数 131
8.4 混合编程实例 133
8.5 MATLAB数学库 139
8.5.1 简介 139
8.5.2 VisualC++工程中调用MATLAB数学函数库的环境设置 140
8.6 小结 141
第9章 通过MATLABAdd-in实现混合编程 142
9.1 MATLABAdd-in简介 142
9.2 MATLABAdd-in安装和在VisualC++中的环境设置 142
9.3 通过MATLABAdd-in生成独立应用程序 145
9.4 MATLABAdd-in实例 146
9.5 小结 149
第10章 MATLAB和Delphi混合编程 150
10.1 Delphi开发环境介绍 150
10.2 通过MATLAB自动化服务实现混合编程 150
10.2.1 自动化服务的实现方法 150
10.2.2 自动化服务应用举例一 152
10.2.3 自动化服务应用举例二 154
10.3 利用MATLAB引擎实现混合编程 158
10.3.1 动态链接库介绍 158
10.3.2 在Delphi中调用VisualC++创建的动态链接库的实例 158
10.3.3 MATLAB引擎动态链接库的设计 163
10.4 Delphi调用Mideva生成的动态链接库 168
10.4.1 Mideva介绍 168
10.4.2 应用实例 168
10.5 通过外部调用实现混合编程 174
10.5.1 外部调用方法介绍 174
10.5.2 应用实例 175
10.6 小结 176
第11章 MATLAB和Excel的混合编程 177
11.1 引言 177
11.2 通过ExcelLink实现Excel和MATLAB的数据共享 177
11.2.1 概述 177
11.2.2 ExcelLink的安装 177
11.2.3 ExcelLink的函数 180
11.2.4 ExcelLink应用实例 181
11.2.5 ExcelLink的注意事项 183
11.3 通过Excel生成器 184
11.3.1 概述 184
11.3.2 创建Excel生成器插件 184
11.4 直接将MATLAB工作区间的数据拷贝到Excel 186
11.5 小结 188
第12章 通过MATLABCOMBuilder实现混合编程 189
12.1 COM基础知识 189
12.2 MATLAB支持的组件自动化 190
12.2.1 在MATLAB下运行其他软件的组件 190
12.2.2 在其他程序下运行MATLAB的组件 194
12.2.3 MATLABCOMBuilder简介 195
12.3 MATLABCOMBuilder使用 195
12.3.1 配置MATLABC/C++编译器 195
12.3.2 使用MATLABCOMBuilder 195
12.3.3 MATLABCOMBuilder工具库 198
12.3.4 在VisualC++中调用COM组件的步骤 199
12.4 在VisualC++中使用MATLABCOMBuilder生成的组件实例 200
12.5 小结 206
第13章 混合编程综合应用实例 207
13.1 引言 207
13.2 预备知识 207
13.2.1 数字图像处理简介 207
13.2.2 MATLAB图像处理工具箱简介 208
13.2.3 VisualC++的图像处理位图文件读/写操作 209
13.3 综合实例框架 210
13.3.1 框架搭建 210
13.3.2 模块划分 213
13.3.3 应用程序功能添加 227
13.4 实现方法 232
13.4.1 图像直方图统计——MATLAB引擎命令实现 233
13.4.2 图像形态学——MATLAB引擎数据交互实现 237
13.4.3 图像的FFT变换——通过Mideva实现 250
13.5 小结 257
附录A 常见的免费MATLAB工具箱 258
附录B 常用的MATLAB免费站点 259
参考文献 260