目录
第1章 混合编程(www.cppentry.com)环境的搭建 1
1.1 MATLAB与C/C++(www.cppentry.com)混合
编程(www.cppentry.com)的优点 1
1.1.1 MATLAB编程(www.cppentry.com)的优缺点 1
1.1.2 C/C++(www.cppentry.com)编程(www.cppentry.com)的优缺点 1
1.1.3 混合编程(www.cppentry.com)的优缺点 2
1.2 混合编程(www.cppentry.com)主要方法概述 3
1.2.1 Visual C++(www.cppentry.com)调用MATLAB
引擎 3
1.2.2 基于数据文件交换的方法 3
1.2.3 基于COM技术的方法 4
1.2.4 使用MATCOM方法 4
1.2.5 基于ActiveX控件的方法 4
1.2.6 使用MATLAB Add-in方法 5
1.3 Visual C++(www.cppentry.com)和MATLAB混合
编程(www.cppentry.com)环境要求 5
1.4 Visual C++(www.cppentry.com)的安装和配置 5
1.4.1 Visual C++(www.cppentry.com) 6.0的安装 5
1.4.2 Visual C++(www.cppentry.com)的配置 8
1.5 MATLAB的安装和配置 11
1.5.1 MATLAB的安装 11
1.5.2 MATLAB的配置 13
1.6 安装和配置的常见问题 15
1.6.1 Visual C++(www.cppentry.com)的安装和
配置问题 15
1.6.2 MATLAB的安装和
配置问题 16
1.7 小结 18
第2章 Visual C++(www.cppentry.com)开发基础 19
2.1 C++(www.cppentry.com)面向对象程序设计 19
2.1.1 面向对象语言和方法 19
2.1.2 类、对象和消息 20
2.2 C++(www.cppentry.com)异常处理机制 21
2.2.1 错误和异常 22
2.2.2 异常处理的机制和实现 22
2.2.3 Visual C++(www.cppentry.com)异常处理 26
2.3 Windows程序内部运行机制 28
2.3.1 API与SDK 28
2.3.2 窗口与句柄 29
2.3.3 消息与消息队列 29
2.4 动态链接库基础 30
2.4.1 DLL与进程的地址空间 30
2.4.2 DLL分类 31
2.4.3 创建DLL模块 32
2.5 Visual C++(www.cppentry.com)程序编译链接的
原理与过程 34
2.5.1 程序设计编译原理 34
2.5.2 Visual C++(www.cppentry.com)程序编译
链接过程 34
2.6 MFC框架程序 36
2.6.1 MFC AppWizard 36
2.6.2 基于MFC的程序框架剖析 37
2.7 ActiveX控件 42
2.7.1 概述 42
2.7.2 ActiveX控件分类 43
2.7.3 ActiveX控件应用 43
2.8 Visual C++(www.cppentry.com)程序的调试和优化 43
2.8.1 Visual C++(www.cppentry.com)程序调试
方法和过程 43
2.8.2 Visual C++(www.cppentry.com)程序优化 46
2.9 小结 48
第3章 MATLAB编程(www.cppentry.com)基础 49
3.1 MATLAB程序流程控制 49
3.1.1 顺序结构 49
3.1.2 循环结构 50
3.1.3 选择结构 51
3.1.4 分支语句 52
3.1.5 其他控制语句 52
3.2 函数句柄 53
3.2.1 创建和查看函数句柄 53
3.2.2 使用函数句柄 54
3.3 变量的检测和限权使用函数 54
3.3.1 输入/输出变量检测指令 54
3.3.2 跨空间变量传递 55
3.3.3 子函数和私用函数 56
3.4 串(表达式)演算函数 56
3.4.1 eva l 56
3.4.2 feva l 57
3.5 MATLAB面向对象编程(www.cppentry.com) 57
3.5.1 MATLAB中的类 57
3.5.2 具有类属性的数据 58
3.5.3 实现带类方法的操作 59
3.6 MATLAB的数据类型 60
3.6.1 变量与常量 60
3.6.2 数字变量的运算及显示格式 62
3.6.3 字符串 63
3.7 M脚本文件和M函数文件 63
3.7.1 M文件的一般结构 64
3.7.2 M脚本文件 64
3.7.3 M函数文件 65
3.7.4 局部变量和全局变量 66
3.8 MATLAB程序的调试和优化 66
3.8.1 MATLAB程序调试方法
和过程 67
3.8.2 MATLAB程序优化 72
3.9 小结 73
第4章 Visual C++(www.cppentry.com)调用
MATLAB Engine库 74
4.1 MATLAB Engine概述 74
4.2 Visual C++(www.cppentry.com)使用
MATLABEngine库 75
4.2.1 设置Visual C++(www.cppentry.com)编译环境 75
4.2.2 启动/关闭引擎 76
4.2.3 向MATLAB发送命令 77
4.2.4 显示或隐藏MATLAB窗口 79
4.3 MATLAB数据类型mxArray 80
4.3.1 创建mxArray类型数据 80
4.3.2 删除mxArray类型数据 81
4.3.3 获取mxArray数据大小 81
4.3.4 判断 mxArray数组类型 81
4.3.5 操作mxArray数组数据 82
4.4 应用实例 82
4.5 小结 88
第5章 Visual C++(www.cppentry.com)调用MATLAB
的C/C++(www.cppentry.com)数学函数库 89
5.1 MATLAB C++(www.cppentry.com)数学库概述 89
5.2 在Visual C++(www.cppentry.com)环境下调用
MATLAB C++(www.cppentry.com)数学库 90
5.2.1 设置静态链接库 90
5.2.2 设置C++(www.cppentry.com)选项卡中的选项 91
5.2.3 设置头文件 92
5.3 mwArray阵列及系统函数
的调用 93
5.3.1 操作矩阵 93
5.3.2 操作MATLAB mwArray
阵列概述 94
5.3.3 创建MATLAB mwArray
阵列的操作 94
5.3.4 数据阵列的操作 95
5.3.5 稀疏矩阵阵列的操作 96
5.3.6 字符型阵列的操作 97
5.3.7 单元阵列的操作 99
5.3.8 结构体阵列的操作 100
5.3.9 调用系统函数 101
5.4 应用实例 102
5.5 小结 107
第6章 基于数据文件交换的混合
编程(www.cppentry.com)方法 108
6.1 MAT文件概述 108
6.1.1 MAT文件格式 108
6.1.2 读取MAT文件load 110
6.1.3 写MAT文件 111
6.2 Visual C ++操作MAT时
的环境设置 112
6.3 用C/C++(www.cppentry.com)语言操作MAT
文件的API函数 114
6.3.1 读写MAT文件的API
函数简介 114
6.3.2 打开MAT文件 115
6.3.3 关闭MAT文件 115
6.3.4 获得MAT文件中所有
阵列的目录 116
6.3.5 获得MAT文件的C语言
文件句柄 116
6.3.6 从MAT文件中获取一个
阵列变量 116
6.3.7 将阵列变量内容写入MAT
文件 117
6.3.8 获得MAT文件中下一个
阵列的数据 117
6.3.9 从MAT文件中删除一个
阵列 118
6.3.10 将阵列内容写入到MAT
文件中 118
6.3.11 从MAT文件中读取
MATLAB阵列头信息 118
6.3.12 从MAT文件中读取下一个
MATLAB阵列头信息 118
6.4 应用实例 119
6.4.1 环境设置 119
6.4.2 在MATLAB中定义
两个变量 120
6.4.3 建立Visual C++(www.cppentry.com)工程 120
6.5 小结 126
第7章 基于COM技术的方法
实现混合编程(www.cppentry.com) 127
7.1 COM技术概述 127
7.1.1 COM结构 127
7.1.2 COM组件的有关概念 129
7.1.3 COM特性 131
7.1.4 COM发展前景 132
7.2 COM技术接口 132
7.2.1 从API到COM接口 132
7.2.2 接口定义和标示 133
7.2.3 用C++(www.cppentry.com)语言定义接口 135
7.2.4 接口描述语言IDL 135
7.3 使用MATLAB COM
编译器生成COM组件 136
7.3.1 MATLAB COM编译器用法 136
7.3.2 MATLAB COM编译器
产生的COM组件 141
7.4 在Visual C ++中使用
MATLAB的COM组件 142
7.4.1 以早期绑定方式调用
COM组件 143
7.4.2 #import指令的使用 143
7.5 应用实例 144
7.5.1 创建MATLAB组件 144
7.5.2 创建Visual C++(www.cppentry.com)工程 145
7.5.3 完善代码 147
7.6 小结 151
第8章 使用MATCOM工具的
混合编程(www.cppentry.com) 152
8.1 安装MATCOM 152
8.2 MATCOM的基础及应用 154
8.2.1 使用MATCOM C++(www.cppentry.com)
矩阵库的矩阵类Mm 154
8.2.2 在Visual C++(www.cppentry.com)中使用
MATCOM C++(www.cppentry.com)矩阵库 157
8.2.3 MATCOM C++(www.cppentry.com)矩阵库
的图形和图像显示 161
8.2.4 MATCOM用于图形显示
的函数 163
8.2.5 MATCOM用于图像显示
的函数 164
8.3 MIDEVA概述 164
8.4 Visual C++(www.cppentry.com)使用MIDEVA
的环境设置 165
8.4.1 添加头文件和添加库文件 165
8.4.2 添加MIDEVA提供的插件 166
8.5 应用实例 166
8.6 小结 169
第9章 使用ActiveX技术的
混合编程(www.cppentry.com) 170
9.1 ActiveX技术基础 170
9.1.1 ActiveX的定义 170
9.1.2 ActiveX的内容 171
9.1.3 MATLAB支持的ActiveX
技术 171
9.2 利用ActiveX自动控制器
实现混合编程(www.cppentry.com) 172
9.2.1 ActiveX自动控制器 172
9.2.2 ActiveX相关函数 173
9.2.3 ActiveX对象的创建、事件
处理与对象释放 174
9.2.4 查询和设置ActiveX对象
的属性 176
9.2.5 查询及调用ActiveX组件
的方法、事件 177
9.3 ActiveX自动化服务器 177
9.3.1 在客户程序中执行MATLAB
命令 178
9.3.2 与客户程序进行数据交换 178
9.4 应用实例 179
9.4.1 利用ActiveX自动控制器
实现混合编程(www.cppentry.com) 179
9.4.2 利用ActiveX的自动化
服务器进行混合编程(www.cppentry.com) 181
9.4.3 利用MATLAB ActiveX
引擎进行混合编程(www.cppentry.com) 183
9.5 小结 185
第10章 科学运算 186
10.1 科学运算概述 186
10.2 混合编程(www.cppentry.com)在科学运算的
开发原则 186
10.2.1 Visual C++(www.cppentry.com)处理科学
运算问题的优缺点 187
10.2.2 MATLAB处理科学
运算的优缺点 187
10.2.3 混合编程(www.cppentry.com)在科学
运算的开发原则 187
10.3 Visual C++(www.cppentry.com)和MATLAB
在科学运算中的衔接方式 188
10.3.1 MATLAB与Visual C++(www.cppentry.com)
混合编程(www.cppentry.com)实现方法 188
10.3.2 MATCOM编译器 188
10.4 线性方程组求解 189
10.4.1 MATLAB求解 190
10.4.2 Visual C++(www.cppentry.com)求解 193
10.4.3 Visual C++(www.cppentry.com)和MATLAB混合
编程(www.cppentry.com)对线性方程组求解 204
10.5 编程(www.cppentry.com)方式不同的对比 207
10.6 小结 207
第11章 图形图像显示 208
11.1 Visual C++(www.cppentry.com)和MATLAB
图形图像处理混合编程(www.cppentry.com)原则 208
11.2 Visual C++(www.cppentry.com)的图形图像处理
及接口设计 208
11.2.1 Visual C++(www.cppentry.com)的图像
处理方法 208
11.2.2 Visual C++(www.cppentry.com)图形处理方法 212
11.2.3 Visual C++(www.cppentry.com)和MATLAB图形
图像处理的接口设计 212
11.3 MATLAB图像处理基础 213
11.3.1 显示图像 213
11.3.2 查看内存中的图像 214
11.3.3 图像灰度分布直方图
均衡化 214
11.3.4 图像文件的保存 215
11.3.5 查看新生成文件的内容 215
11.4 图像格式与MATLAB
图像类型 216
11.4.1 常用图像格式 216
11.4.2 MATLAB图像类型 218
11.4.3 MATLAB图像类型转换 219
11.5 MATLAB图像显示命令 222
11.5.1 MATLAB图像的读/写
和显示 222
11.5.2 二进制图像的显示方法 223
11.5.3 灰度图像的显示方法 223
11.5.4 索引图像的显示方法 224
11.5.5 RGB图像的显示方法 224
11.5.6 磁盘图像的直接显示 224
11.6 MATLAB图形显示命令 225
11.7 Visual C++(www.cppentry.com)和MATLAB
图形图像处理应用实例 225
11.7.1 Visual C++(www.cppentry.com)中调用
MATLAB函数画图 225
11.7.2 利用MATCOM绘制
动态曲线 228
11.7.3 二维和三维曲线绘制
综合应用 231
11.8 小结 244
第12章 图像识别 245
12.1 图像识别的混合编程(www.cppentry.com)规则
和接口设计 245
12.1.1 Visual C++(www.cppentry.com)和MATLAB
图像识别的混合编程(www.cppentry.com)原则 245
12.1.2 Visual C++(www.cppentry.com)和MATLAB
图像识别的接口设计 245
12.2 图像识别概述 246
12.2.1 图像识别的发展阶段 246
12.2.2 图像识别的基础 247
12.2.3 图像识别原理 247
12.3 主要图像识别方法 248
12.3.1 统计模式的识别方法 248
12.3.2 结构语句的识别方法 248
12.3.3 模糊集识别法 249
12.3.4 神经网络识别法 249
12.4 图像识别的应用 249
12.4.1 图像预处理 250
12.4.2 图像分割 253
12.4.3 图像识别 254
12.5 图像识别应用综合实例 260
12.5.1 新建图像识别M文件 260
12.5.2 在MATLAB下创建
COM组件 264
12.5.3 Visual C++(www.cppentry.com)单击工程中
调用COM组件 267
12.5 小结 269
第13章 控制系统模型输入和分析 270
13.1 MATLAB控制系统工具箱 270
13.1.1 Simulink 270
13.1.2 其他解决控制领域问题
的工具箱 271
13.2 控制系统模型输入和分析
的混合编程(www.cppentry.com)原则及接口设计 271
13.3 控制系统模型的输入 273
13.3.1 传递函数模型的输入 273
13.3.2 零极点增益模型的输入 276
13.3.3 状态空间模型的输入 278
13.3.4 系统不同模型之间的转换 279
13.4 控制系统的分析 283
13.4.1 系统的时域分析 283
13.4.2 系统的根轨迹分析 285
13.4.3 系统的频域分析 287
13.4.4 系统的稳定性分析 290
13.5 基于Visual C++(www.cppentry.com)和MATLAB
的控制系统模型输入和分析 291
13.5.1 Visual C++(www.cppentry.com)界面设计 292
13.5.2 Visual C++(www.cppentry.com)调用MATLAB
引擎实现的关键技术 292
13.5.3 运行结果 296
13.6 小结 297
第14章 控制系统的设计仿真 298
14.1 控制系统校正器原理 298
14.1.1 串联校正 298
14.1.2 反馈校正 300
14.1.3 复合校正 301
14.2 控制系统校正器设计和仿真 302
14.2.1 超前校正设计 302
14.2.2 滞后校正设计 305
14.2.3 滞后-超前校正设计 307
14.2.4 PID校正器 308
14.3 基于Visual C++(www.cppentry.com)和MATLAB
的控制系统校正器设计 311
14.3.1 控制系统校正器的
实现方式 311
14.3.2 控制系统分析界面设计 312
14.3.3 代码实现 313
14.3.4 运行结果 315
14.4 小结 317
第15章 信号频谱分析 318
15.1 信号频谱分析的混合编程(www.cppentry.com)
规则和接口设计 318
15.1.1 Visual C++(www.cppentry.com)和MATLAB信号
频谱分析的混合编程(www.cppentry.com)原则 318
15.1.2 Visual C++(www.cppentry.com)和MATLAB信号
频谱分析的接口设计 318
15.2 信号频谱分析的基本概念 319
15.2.1 周期信号与离散光谱
的定义 319
15.2.2 信号频谱分析和显示原理 320
15.3 信号FFT频谱分析 321
15.3.1 数据采样 321
15.3.2 采样数据导入MATLAB 322
15.3.3 对采样数据进行频谱分析 323
15.4 MATLAB频谱分析函数 324
15.5 Visual C++(www.cppentry.com)开发信号FFT
频谱分析与显示结果 326
15.5.1 新建M文件 326
15.5.2 创建COM组件 327
15.5.3 Visual C++(www.cppentry.com)单击工程中
调用COM组件 330
15.5.4 信号FFT实践及频谱
分析 332
15.6 小结 340
第16章 数据采集和分析 341
16.1 信号和信号处理 341
16.2 数据采集和分析处理的
混合编程(www.cppentry.com)原则 341
16.3 Visual C++(www.cppentry.com)的数据采集和
分析及接口设计 343
16.3.1 监控程序中的数据
实时采集 343
16.3.2 基于MSComm控件
的串口通信 344
16.4 信号的采集原理 346
16.4.1 采样定理 346
16.4.2 信号的产生 347
16.4.3 连续时间信号在MATLAB
中的运算 353
16.4.4 连续时间LTI系统的
时域分析 354
16.5 小波理论在信号分析中
的应用 356
16.5.1 小波分析原理 356
16.5.2 小波在语音信号增强中
的应用 357
16.5.3 小波在语音信号压缩中
的应用 358
16.6 混合编程(www.cppentry.com)实例 359
16.6.1 使用Visual C++(www.cppentry.com)和MATLAB
混合编程(www.cppentry.com)的方式绘制sinc
函数波形 359
16.6.2 数据传输和小波分析
示例程序 362
16.7 小结 365
第17章 Visual C++(www.cppentry.com)和MATLAB
开发齿轮优化设计系统 366
17.1 优化设计理论 366
17.2 MATLAB优化设计工具箱 367
17.2.1 优化工具箱简介 367
17.2.2 优化工具箱4.x的新特色 368
17.2.3 优化函数 368
17.2.4 无约束优化问题 370
17.2.5 约束优化问题 373
17.3 Visual C++(www.cppentry.com)与绘图软件
SolidWorks的接口 376
17.3.1 SolidWorks的API接口
概述 376
17.3.2 对象分类 376
17.3.3 几个重要的SolidWorks API
对象 378
17.3.4 使用Visual C++(www.cppentry.com)对
SolidWorks的二次开发 379
17.4 齿轮优化设计系统概述 379
17.4.1 齿轮优化设计系统需求 379
17.4.2 齿轮优化设计系统设计 380
17.5 齿轮优化设计系统开发 380
17.5.1 齿轮优化设计的MATLAB
实现 380
17.5.2 SolidWorks环境内的
Visual C++(www.cppentry.com)和MATLAB
混合编程(www.cppentry.com) 385
17.5.3 齿轮优化设计系统运行 397
17.6 小结 398
第18章 基于Visual C++(www.cppentry.com)和MATLAB
的汽车ABS系统仿真 399
18.1 汽车ABS系统工作原理 399
18.2 MATLAB中建立仿真模型 399
18.2.1 Simulink建立模型 399
18.2.2 Simulink模型运行及
分析 400
18.2.3 仿真数据的输入输出
设置 400
18.2.4 解算器(Solver)的
设置 400
18.2.5 Simulink模块的合成
与封装 401
18.3 建立汽车ABS仿真模型 401
18.3.1 汽车ABS系统数学模型 402
18.3.2 建立和运行汽车ABS
系统仿真模型 403
18.4 混合仿真过程 406
18.5 小结 409
参考文献 410