《精通MATLAB混合编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:丁毓峰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121168956
  • 页数:410 页
图书介绍:本书从混合编程环境的搭建、混合开发中Visual C++和MATLAB必备基础知识讲解,详细讲解六种混合开发方式:Visual C++调用MATLAB Engine库、Visual C++调用MATLAB的C/C++数学函数库、基于数据文件交换、基于COM技术、使用MATCOM、使用ActiveX技术,还讲解了七大混合编程应用领域:科学运算、图形图像显示、图像识别、控制系统模型输入和分析、控制系统的设计仿真、信号频谱分析和数据采集和分析。

第1章 混合编程环境的搭建 1

1.1 MATLAB与C/C++混合编程的优点 1

1.1.1 MATLAB编程的优缺点 1

1.1.2 C/C++编程的优缺点 1

1.1.3混合编程的优缺点 2

1.2混合编程主要方法概述 3

1.2.1 Visual C++调用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++和MATLAB混合编程环境要求 5

1.4 Visual C++的安装和配置 5

1.4.1 Visual C++ 6.0的安装 5

1.4.2 Visual C++的配置 8

1.5 MATLAB的安装和配置 11

1.5.1 MATLAB的安装 11

1.5.2 MATLAB的配置 13

1.6安装和配置的常见问题 15

1.6.1 Visual C++的安装和配置问题 15

1.6.2 MATLAB的安装和配置问题 16

1.7小结 18

第2章Visual C++开发基础 19

2.1 C++面向对象程序设计 19

2.1.1面向对象语言和方法 19

2.1.2类、对象和消息 20

2.2 C++异常处理机制 21

2.2.1错误和异常 22

2.2.2异常处理的机制和实现 22

2.2.3 Visual C++异常处理 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++程序编译链接的原理与过程 34

2.5.1程序设计编译原理 34

2.5.2 Visual C++程序编译链接过程 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++程序的调试和优化 43

2.8.1 Visual C++程序调试方法和过程 43

2.8.2 Visual C++程序优化 46

2.9小结 48

第3章MATLAB编程基础 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 eval 56

3.4.2 feval 57

3.5 MATLAB面向对象编程 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++调用MATLAB Engine库 74

4.1 MATLAB Engine概述 74

4.2 Visual C++使用MATLAB Engine库 75

4.2.1设置Visual C++编译环境 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++调用MATLAB的C/C++数学函数库 89

5.1 MATLAB C++数学库概述 89

5.2在Visual C++环境下调用MATLAB C++数学库 90

5.2.1设置静态链接库 90

5.2.2设置C++选项卡中的选项 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章 基于数据文件交换的混合编程方法 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++语言操作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++工程 120

6.5小结 126

第7章 基于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++语言定义接口 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++工程 145

7.5.3完善代码 147

7.6小结 151

第8章 使用MATCOM工具的混合编程 152

8.1安装MATCOM 152

8.2 MATCOM的基础及应用 154

8.2.1使用MATCOM C++矩阵库的矩阵类Mm 154

8.2.2在Visual C++中使用MATCOM C++矩阵库 157

8.2.3 MATCOM C++矩阵库的图形和图像显示 161

8.2.4 MATCOM用于图形显示的函数 163

8.2.5 MATCOM用于图像显示的函数 164

8.3 MIDEVA概述 164

8.4 Visual C++使用MIDEVA的环境设置 165

8.4.1添加头文件和添加库文件 165

8.4.2添加MIDEVA提供的插件 166

8.5应用实例 166

8.6小结 169

第9章 使用ActiveX技术的混合编程 170

9.1 ActiveX技术基础 170

9.1.1 ActiveX的定义 170

9.1.2 ActiveX的内容 171

9.1.3 MATLAB支持的ActiveX技术 171

9.2利用ActiveX自动控制器实现混合编程 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自动控制器实现混合编程 179

9.4.2利用ActiveX的自动化服务器进行混合编程 181

9.4.3利用MATLAB ActiveX引擎进行混合编程 183

9.5小结 185

第10章 科学运算 186

10.1科学运算概述 186

10.2混合编程在科学运算的开发原则 186

10.2.1 Visual C++处理科学运算问题的优缺点 187

10.2.2 MATLAB处理科学运算的优缺点 187

10.2.3混合编程在科学运算的开发原则 187

10.3 Visual C++和MATLAB在科学运算中的衔接方式 188

10.3.1 MATLAB与Visual C++混合编程实现方法 188

10.3.2 MATCOM编译器 188

10.4线性方程组求解 189

10.4.1 MATLAB求解 190

10.4.2 Visual C++求解 193

10.4.3 Visual C++和MATLAB混合编程对线性方程组求解 204

10.5编程方式不同的对比 207

10.6小结 207

第11章 图形图像显示 208

11.1 Visual C++和MATLAB图形图像处理混合编程原则 208

11.2 Visual C++的图形图像处理及接口设计 208

11.2.1 Visual C++的图像处理方法 208

11.2.2 Visual C++图形处理方法 212

11.2.3 Visual C++和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++和MATLAB图形图像处理应用实例 225

11.7.1 Visual C++中调用MATLAB函数画图 225

11.7.2利用MATCOM绘制动态曲线 228

11.7.3二维和三维曲线绘制综合应用 231

11.8小结 244

第12章 图像识别 245

12.1图像识别的混合编程规则和接口设计 245

12.1.1 Visual C++和MATLAB图像识别的混合编程原则 245

12.1.2 Visual C++和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++单击工程中调用COM组件 267

12.5小结 269

第13章 控制系统模型输入和分析 270

13.1 MATLAB控制系统工具箱 270

13.1.1 Simulink 270

13.1.2其他解决控制领域问题的工具箱 271

13.2控制系统模型输入和分析的混合编程原则及接口设计 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++和MATLAB的控制系统模型输入和分析 291

13.5.1 Visual C++界面设计 292

13.5.2 Visual C++调用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++和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信号频谱分析的混合编程规则和接口设计 318

15.1.1 Visual C++和MATLAB信号频谱分析的混合编程原则 318

15.1.2 Visual C++和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++开发信号FFT频谱分析与显示结果 326

15.5.1新建M文件 326

15.5.2创建COM组件 327

15.5.3 Visual C++单击工程中调用COM组件 330

15.5.4信号FFT实践及频谱分析 332

15.6小结 340

第16章 数据采集和分析 341

16.1信号和信号处理 341

16.2数据采集和分析处理的混合编程原则 341

16.3 Visual C++的数据采集和分析及接口设计 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混合编程实例 359

16.6.1使用Visual C++和MATLAB混合编程的方式绘制sinc函数波形 359

16.6.2数据传输和小波分析示例程序 362

16.7小结 365

第17章Visual C++和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++与绘图软件SolidWorks的接口 376

17.3.1 SolidWorks的API接口概述 376

17.3.2对象分类 376

17.3.3几个重要的SolidWorks API对象 378

17.3.4使用Visual C++对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++和MATLAB混合编程 385

17.5.3齿轮优化设计系统运行 397

17.6小结 398

第18章 基于Visual C++和MATLAB的汽车ABS系统仿真 399

18.1汽车ABS系统工作原理 399

18.2 MATLA13中建立仿真模型 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