出版时间:2012-6 出版社:电子工业出版社 作者:丁毓峰 页数:409
Tag标签:无
内容概要
《精通MATLAB混合编程》详细讲解Visual C++和MATLAB混合编程各项技术和重点应用。《精通MATLAB混合编程》从混合编程环境的搭建、混合开发中Visual C++和MATLAB必备基础知识讲解,详细讲解六种混合开发方式:Visual C++调用MATLAB Engine库、Visual C++调用MATLAB的C/C++数学函数库、基于数据文件交换、基于COM技术、使用MATCOM、使用ActiveX技术,还讲解了七大混合编程应用领域:科学运算、图形图像显示、图像识别、控制系统模型输入和分析、控制系统的设计仿真、信号频谱分析和数据采集和分析。最后,《精通MATLAB混合编程》还讲解了两个案例:Visual CH和MATLAB开发齿轮优化设计系统,Visual C++和MATLAB的汽车ABS系统仿真等内容。
作者简介
丁毓峰,博士,武汉理工大学副教授。中国机械工程学会高级会员。2008年—2009年加拿大多伦多大学机械系访问学者。2001年—2003年在深圳市中兴通讯股份有限公司任软件工程师、系统工程师。研究领域主要集中在制造自动化和信息化,长期使用MATLAB软件系统进行教学和科研工作。近5年主持和参与了多项国家级、省级和市级科技项目。撰写专著3部,获得计算机版权登记5项,申请发明专利2项,发表论文60余篇。成果先后获得湖北省科学技术进步奖,武汉市科学技术进步奖和第11届湖北省自然科学优秀学术论文奖。
书籍目录
第1章 混合编程环境的搭建 1.1 MATLAB与C/C++混合编程的优点 1.1.1 MATLAB编程的优缺点 1.1.2 C/C++编程的优缺点 1.1.3 混合编程的优缺点 1.2 混合编程主要方法概述 1.2.1 Visual C++调用MATLAB引擎 1.2.2 基于数据文件交换的方法 1.2.3 基于COM技术的方法 1.2.4 使用MATCOM方法 1.2.5 基于ActiveX控件的方法 1.2.6 使用MATLAB Add-in方法 1.3 Visual C++和MATLAB混合编程环境要求 1.4 Visual C++的安装和配置 1.4.1 Visual C++6.0的安装 1.4.2 Visual C++的配置 1.5 MATLAB的安装和配置 1.5.1 MATLAB的安装 1.5.2 MATLAB的配置 1.6 安装和配置的常见问题 1.6.1 Visual C++的安装和配置问题 1.6.2 MATLAB的安装和配置问题 1.7 小结 第2章 Visual C++开发基础 2.1 C++面向对象程序设计 2.1.1 面向对象语言和方法 2.1.2 类、对象和消息 2.2 C++异常处理机制 2.2.1 错误和异常 2.2.2 异常处理的机制和实现 2.2.3 Visual C++异常处理 2.3 Windows程序内部运行机制 2.3.1 API与SDK 2.3.2 窗口与句柄 2.3.3 消息与消息队列 2.4 动态链接库基础 2.4.1 DLL与进程的地址空间 2.4.2 DLL分类 2.4.3 创建DLL模块 2.5 Visual C++程序编译链接的原理与过程 2.5.1 程序设计编译原理 2.5.2 Visual C++程序编译链接过程 2.6 MFC框架程序 2.6.1 MFC AppWizard 2.6.2 基于MFC的程序框架剖析 2.7 ActiveX控件 2.7.1 概述 2.7.2 ActiveX控件分类 2.7.3 ActiveX控件应用 2.8 Visual C++程序的调试和优化 2.8.1 Visual C++程序调试方法和过程 2.8.2 Visual C++程序优化 2.9 小结 第3章 MATLAB编程基础 3.1 MATLAB程序流程控制 3.1.1 顺序结构 3.1.2 循环结构 3.1.3 选择结构 3.1.4 分支语句 3.1.5 其他控制语句 3.2 函数句柄 3.2.1 创建和查看函数句柄 3.2.2 使用函数句柄 3.3 变量的检测和限权使用函数 3.3.1 输入/输出变量检测指令 3.3.2 跨空间变量传递 3.3.3 子函数和私用函数 3.4 串(表达式)演算函数 3.4.1 eval 3.4.2 feval 3.5 MATLAB面向对象编程 3.5.1 MATLAB中的类 3.5.2 具有类属性的数据 3.5.3 实现带类方法的操作 3.6 MATLAB的数据类型 3.6.1 变量与常量 3.6.2 数字变量的运算及显示格式 3.6.3 字符串 3.7 M脚本文件和M函数文件 3.7.1 M文件的一般结构 3.7.2 M脚本文件 3.7.3 M函数文件 3.7.4 局部变量和全局变量 3.8 MATLAB程序的调试和优化 3.8.1 MATLAB程序调试方法和过程 3.8.2 MATLAB程序优化 3.9 小结 第4章 Visual C++调用 MATLAB Engine库 4.1 MATLAB Engine概述 4.2 Visual C++使用MATLABEngine库 4.2.1 设置Visual C++编译环境 4.2.2 启动/关闭引擎 4.2.3 向MATLAB发送命令 4.2.4 显示或隐藏MATLAB窗口 4.3 MATLAB数据类型mxArray 4.3.1 创建mxArray类型数据 4.3.2 删除mxArray类型数据 4.3.3 获取mxArray数据大小 4.3.4 判断 mxArray数组类型 4.3.5 操作mxArray数组数据 4.4 应用实例 4.5 小结 第5章 Visual C++调用MATLAB的C/C++数学函数库 5.1 MATLAB C++数学库概述 5.2 在Visual C++环境下调用MATLAB C++数学库 5.2.1 设置静态链接库 5.2.2 设置C++选项卡中的选项 5.2.3 设置头文件 5.3 mwArray阵列及系统函数的调用 5.3.1 操作矩阵 5.3.2 操作MATLAB mwArray阵列概述 5.3.3 创建MATLAB mwArray阵列的操作 5.3.4 数据阵列的操作 5.3.5 稀疏矩阵阵列的操作 5.3.6 字符型阵列的操作 5.3.7 单元阵列的操作 5.3.8 结构体阵列的操作 5.3.9 调用系统函数 5.4 应用实例 5.5 小结 第6章 基于数据文件交换的混和编程方法 6.1 MAT文件概述 6.1.1 MAT文件格式 6.1.2 读取MAT文件load 6.1.3 写MAT文件 6.2 Visual C++操作MAT时的环境设置 6.3 用C/C++语言操作MAT文件的API函数 6.3.1 读写MAT文件的API函数简介 6.3.2 打开MAT文件 6.3.3 关闭MAT文件 6.3.4 获得MAT文件中所有阵列的目录 6.3.5 获得MAT文件的C语言文件句柄 6.3.6 从MAT文件中获取一个阵列变量 6.3.7 将阵列变量内容写入MAT文件 6.3.8 获得MAT文件中下一个阵列的数据 6.3.9 从MAT文件中删除一个阵列 6.3.10 将阵列内容写入到MAT文件中 6.3.11 从MAT文件中读取MATLAB阵列头信息 6.3.12 从MAT文件中读取下一个MATLAB阵列头信息 6.4 应用实例 6.4.1 环境设置 6.4.2 在MATLAB中定义两个变量 6.4.3 建立Visual C++工程 6.5 小结 第7章 基于COM技术的方法实现混合编程 7.1 COM技术概述 7.1.1 COM结构 7.1.2 COM组件的有关概念 7.1.3 COM特性 7.1.4 COM发展前景 7.2 COM技术接口 7.2.1 从API到COM接口 7.2.2 接口定义和标识 7.2.3 用C++语言定义接口 7.2.4 接口描述语言IDL 7.3 使用MATLAB COM编译器生成COM组件 7.3.1 MATLAB COM编译器用法 7.3.2 MATLAB COM编译器产生的COM组件 7.4 在Visual C++中使用MATLAB的COM组件 7.4.1 以早期绑定方式调用COM组件 7.4.2 #import指令的使用 7.5 应用实例 7.5.1 创建MATLAB组件 7.5.2 创建Visual C++工程 7.5.3 完善代码 7.6 小结 第8章 使用MATCOM工具的混合编程 8.1 安装MATCOM 8.2 MATCOM的基础及应用 8.2.1 使用MATCOM C++矩阵库的矩阵类Mm 8.2.2 在Visual C++中使用MATCOM C++矩阵库 8.2.3 MATCOM C++矩阵库的图形和图像显示 8.2.4 MATCOM用于图形显示的函数 8.2.5 MATCOM用于图像显示的函数 8.3 MIDEVA概述 8.4 Visual C++使用MIDEVA的环境设置 8.4.1 添加头文件和添加库文件 8.4.2 添加MIDEVA提供的插件 8.5 应用实例 8.6 小结 第9章 使用ActiveX技术的混合编程 9.1 ActiveX技术基础 9.1.1 ActiveX的定义 9.1.2 ActiveX的内容 9.1.3 MATLAB支持的ActiveX技术 9.2 利用ActiveX自动控制器实现混合编程 9.2.1 ActiveX自动控制器 9.2.2 ActiveX相关函数 9.2.3 ActiveX对象的创建、事件处理与对象释放 9.2.4 查询和设置ActiveX对象的属性 9.2.5 查询及调用ActiveX组件的方法、事件 9.3 ActiveX自动化服务器 9.3.1 在客户程序中执行MATLAB命令 9.3.2 与客户程序进行数据交换 9.4 应用实例 9.4.1 利用ActiveX自动控制器实现混合编程 9.4.2 利用ActiveX的自动化服务器进行混合编程 9.4.3 利用MATLAB ActiveX引擎进行混合编程 9.5 小结 第10章 科学运算 10.1 科学运算概述 10.2 混合编程在科学运算的开发原则 10.2.1 Visual C++处理科学运算问题的优缺点 10.2.2 MATLAB处理科学运算的优缺点 10.2.3 混合编程在科学运算的开发原则 10.3 Visual C++和MATLAB在科学运算中的衔接方式 10.3.1 MATLAB与Visual C++混合编程实现方法 10.3.2 MATcom编译器 10.4 线性方程组求解 10.4.1 MATLAB求解 10.4.2 Visual C++求解 10.4.3 Visual C++和MATLAB混合编程对线性方程组求解 10.5 编程方式不同的对比 10.6 小结 第11章 图形图像显示 11.1 Visual C++和MATLAB图形图像处理混合编程原则 11.2 Visual C++的图形图像处理及接口设计 11.2.1 Visual C++的图像处理方法 11.2.2 Visual C++图形处理方法 11.2.3 Visual C++和MATLAB图形图像处理的接口设计 11.3 MATLAB图像处理基础 11.3.1 显示图像 11.3.2 查看内存中的图像 11.3.3 图像灰度分布直方图均衡化 11.3.4 图像文件的保存 11.3.5 查看新生成文件的内容 11.4 图像格式与MATLAB图像类型 11.4.1 常用图像格式 11.4.2 MATLAB图像类型 11.4.3 MATLAB图像类型转换 11.5 MATLAB图像显示命令 11.5.1 MATLAB图像的读写和显示 11.5.2 二进制图像的显示方法 11.5.3 灰度图像的显示方法 11.5.4 索引图像的显示方法 11.5.5 RGB图像的显示方法 11.5.6 磁盘图像的直接显示 11.6 MATLAB图形显示命令 11.7 Visual C++和MATLAB图形图像处理应用实例 11.7.1 Visual C++中调用MATLAB函数画图 11.7.2 利用MATCOM绘制动态曲线 11.7.3 二维和三维曲线绘制综合应用 11.8 小结 …… 第12章 图像识别 第13章 控制系统模型输入和分析 第14章 控制系统的设计仿真 第15章 信号频谱分析 第16章 数据采集和分析 第17章 Visual C++和MATLAB开发齿轮优化设计系统 第18章 基于Visual C++和MATLAB的汽车ABS系统仿真 参考文献
章节摘录
版权页: 插图: OOL将客观事物描述成具有属性和行为的对象,对象通过类来描述,通过抽象的方法来确定类对象的静态属性和动态行为。通过设计并定义类的接口使其可以与外界发生联系。对象与对象之间通过发送和接收消息进行通信。这种机制使得程序的各个模块之间的关系更为简单,另外类的继承与多态性等特性更有助于实现代码重用,从而提高软件开发效率。 2.1.2类、对象和消息 本节将介绍OOL的几个重要概念,包括对象、类、封装、继承、消息等,不同类型的OOL都会涉及这些概念的全部或者部分。 1.对象(Object) 对象是指客观世界中实际存在的事物,包括有形对象和无形对象。有形对象是指物理上存在的实体,例如,企业的生产车间、机床、刀具、计算机、设计手册等;无形对象是指物理上不存在的对象,如计算机中的一个项目计划、一个机床的总装配图纸等。通常使用静态特征和动态特征来描述对象。 静态特征是使用数据对对象的特征进行描述,如汽车的颜色、重量、车身的材料等;动态特征是体现对象的行为或具有的功能,如汽车的刹车、自动导航的功能等。在实际编程语言的实现中,对象由类进行定义,类由一批属性和对这批属性进行操作的服务实现。 2.类(Class) 类是指具有相同属性和服务的一组对象的集合。类为隶属于该类的全部对象提供了抽象的描述,包括属性和操作服务。也就是说,类是对象的抽象,而对象是类的具体实例。在编程语言中,对象是具体的,占用存储空间,而类是抽象的,不占用内存。例如,如果将机床定义为一个基础类,那么属于该类的CA6140车床就是一个具体的机床对象。 3.继承性(Inheritance) 对象的核心包括继承性(Inheritance)、封装性(Encapsulation)和多态性(Polymorphism)等重要特性。继承性用于基础类和特殊类之间的关系描述。定义基础类时,需要在基础类中包括基本属性和操作服务,特殊类的对象可以从基础类获取其全部基本属性与操作服务。获取的方式就是通过继承实现。例如,若将机床定义为一个基础类,那么车床就可以定义为一个特殊类,即车床的很多基本属性(颜色、重量、材料等)和操作服务(切削、换刀等)都可以从基础类——机床通过继承的方式获得。继承性便于软件复用,可以有效地提高软件开发效率。 4.封装性(Encapsulation) 封装性是指将对象的属性和操作服务结合成一个独立的对象特性。通过封装性实现信息隐蔽,即尽可能隐蔽对象的内部细节,只提供有限的接口,其他对象如果想访问该对象,只需要通过相应接口调用其属性和操作函数,而不需要了解其内部结构。例如,SolidWorks、Pro-E等三维软件都提供了经过封装的图形操作类,用户若想在SolidWorks、Pro-E等CAD(Computer Aided Design)系统上构建自己的绘图系统,只需要调用相应类的属性和API函数,就可以实现相应的功能,不需要具体了解类内部的函数是如何绘图的细节。 5.多态性(Polymorphism) 多态性是指在基础类中定义属性或操作,特殊类继承基础类的属性或操作后,可以存在不同的数据类型或表现出不同的操作结果。即同一属性或操作结果在基础类及其多个特殊类中具有不同的功能实现形式。例如,三维CAD系统中基础类“三维几何实体”中定义了一个操作函数“三维实体建模”,但并不确定构建一个什么样的三维实体。可以在“三维几何实体”基础类上定义多个特殊的类,如“圆柱体”、“正方体”、“圆锥体”等,它们继承基础类的所有属性和操作函数,但其定义的功能算法不同。当特殊类对象接到“建模”命令信息时,不同对象执行不同的算法,将构建不同的三维实体。 6.消息(Message) 消息是对象之间实现交互、发生联系的重要方法。通过消息可以实现对象之间的通信。消息的实现机制为请求对象向服务对象发出服务请求,服务对象根据请求的情况进行信息处理和运算,处理结束后,将消息返回给请求对象。消息结构主要包含提供服务的对象标识、服务标识、输入信息和回答信息等。通常通过调用函数来实现消息处理。 通过综合利用以上提到的封装性、继承性、多态性等面向对象特性,编程人员可以编写出比面向过程模型更健壮,更好地支持代码重用,更具扩展性的程序。类层次结构是重用代码的基础;封装性使得编程人员不必修改公有接口的代码即可实现程序的移植:多态性能开发出简洁、易懂、容易修改的代码。通过使用面向对象的设计原则,编程人员可以把复杂程序的各个组件进行组合,构成一个可靠、易于维护和移植的软件系统。
编辑推荐
《精通MATLAB混合编程》全面讲解MATLAB与C++混合编程的主流技术提供近50个实例项目,介绍MATLAB与C++的7大混合编程应用配2个紧密结合工程实际的项目案例:工程开发实践——齿轮优化设计系统;汽车仿真应用——汽车ABS系统仿真。书中并配套光盘,提供了每章实例的源程序。《精通MATLAB混合编程》不仅适合高等学校理工类研究生或者高年级本科生作为学习Visual C++和MATLAB混合编程的教材,也可供从事MATLAB进行工程设计和仿真的技术人员参考使用。同时书中提供的大量实例也可供高级用户参考。
图书封面
图书标签Tags
无
评论、评分、阅读与下载