本论文是一篇可靠性相关论文的格式,关于VisualC++与Matlab混合编程方法的对比相关大学毕业论文范文。免费优秀的关于可靠性及方法及函数方面论文范文资料,适合可靠性论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要:VisualC++具有应用程序界面开发能力强和程序执行效率高的特点,Matlab则具有强大的图形显示和数据处理功能.这两种软件的混合编程可以综合它们的优点,大大提高编程效率和程序的可靠性.在此通过VisualC++和Matlab混合编程方法的对比分析,便于程序开发人员在不同的应用背景下选择合适的编程方法.首先简要介绍了Matlab引擎、MCC编译器、Mat程序、Matlab数学函数库、动态链接库、COM组件和MEX文件等7种混合编程方法,并对这些方法进行了详细的对比分析.然后根据其分析结果,归纳总结出每种方法的优缺点,提出了这些方法的应用范围.
关 键 词:混合编程;对比分析;VisualC++;Matlab
中图分类号:TN91934;TP312文献标识码:A文章编号:1004373X(2013)20004704
0引言
Matlab是由美国MathWorks公司开发,主要面对科学计算、可视化以及交互式程序设计的高科技计算环境[1].它包含有大量开源算法,所使用的算法普遍都是科研和工程计算中的最新研究成果,而且经过了优化和容错处理.它拥有强大的图形、图像处理能力和高速、精确的计算机数据处理能力,被广泛应用到科学研究及工程计算的众多领域.
VisualC++是Microsoft公司推出的一个基于Windows平台的可视化的集成开发环境.它包括了Microsoft的代码优化技术、强大的GUI功能以及复杂的资源编辑器,极大提高了应用程序的设计效率,开发的系统执行速度快、实时性好,而且具有接口友好、易维护和可升级等优点[2].它已成为操作系统、设备驱动程序和系统级平台类软件的最佳开发工具.但缺乏对大量数据处理和分析、数据可视化分析方面的能力.
综上可知,Matlab与VisualC++有着各自的不同特点,将两者进行混合编程能更有效地提升它们的优势,提高软件开发效率.
目前,两者混合编程的研究大多停留在如何具体实现上[39],对这些方法进行对比分析研究相对甚少,程序开发人员对混合编程方法的选择较为盲目.
因此,本文针对这些问题,详细对比分析了VisualC++与Matlab混合编程常用的七种方法,归纳总结出了每种方法的优缺点,并提出了这此方法的应用范围.
1混合编程方法概述
VisualC++与Matlab混合编程主要有Matlab引擎、MCC编译器、Mat程序、Matlab数学函数库、动态链接库、COM组件和MEX文件等方法[39],如图1所示.在对比分析这些方法特性之前,下面简要概述一下这些实现方法.
(1)Matlab引擎(MatlabEngine)
是指一组由Matlab所提供的接口函数,采用客户机/服务器的计算方式,并且支持VisualC++调用.
(2)Matlab数学函数库
是由Matlab提供的包含矩阵计算的数学函数库,VisualC++通过调用Matlab数学函数库中的函数来实现混合编程.
(3)MCC编译器(MatlabCompiler)
是将Matlab中的m文件转化成C代码、可执行文件和动态链接库文件的程序,其生成的代码可在VisualC++中和应用程序源代码一起编译连接成独立的应用程序.
(4)动态链接库(DynamicLinkLibrary,DLL)
是由Matlab编译器或其他编译器将m文件或m脚本文件编译成动态链接库,VisualC++通过调用动态链接库中的函数来完成与Matlab的通信.
(5)COM(ComponentObjectModel)组件
是以组件为单元的对象模型,按照一定的接口标准形成的一套接口函数,可重复利用和开发不同的应用软件.
(6)Mat
是将Matlab的m文件译成同等功能的C++源代码的软件,程序开发人员可以直接使用这些C++源代码在VisualC++中编译链接成应用程序.
(7)MEX(MatlabExecutable)
文件是按照Matlab定义函数的接口标准编写C++源文件,通过Matlab中的专用工具将C++源文件转换而来,其可在Matlab环境下直接被调用.
2VisualC++和Matlab混合编程方式的对比分析
2.1七种混合编程方法总体对比
七种混合编程方法以不同的方式实现了VisualC++与Matlab的编程交互.为了便于程序开发人员能快速有效地选择适合的混合编程方法,明确每种混合编程方法的优缺点及其应用场合则显得十分重要.下面首先从三个角度对这几种方法作了纵向的对比分析,具体如表1所示.
(1)在软件集成度方面
即是否独立于Matlab运行.Matlab引擎集成度最低,因为其要有后台运行的Matlab的支持才能发挥作用,且运行效率不高.而MEX文件是Matlab中调用C++语言源代码,直接在Matlab环境下运行,因此不能脱离Matlab.另外5种方法集成度都高,其中Matlab数学函数库可直接被VisualC++调用,而Mat和MCC则是通过转换m文件为cpp文件的方法来实现通信,动态链接库和COM组件通过调用DLL文件的方法来实现混合编程,运用这五种方法编写的应用程序都可以脱离Matlab单独运行.
(2)在支持三维图形方面
Matlab引擎支持性最好,因为其图形的相关计算都是在Matlab环境下进行,与直接在Matlab下显示的三维图形并没有多大的区别.而Matlab数学函数库主要包含了数学计算类的函数,三维图形显示类函数较少,因此其支持性差.另外Mat和MCC在三维图形的显示上也较差,因为并不是所有的三维图形函数能被转换成cpp文件,此外三维图形函数的转换会影响算法的效率,图形显示效果较差[8].而动态链接库和COM组件在支持三维图方面还是不错的,但不管从支持图形显示的函数上还是显示的效果,都比不上Matlab引擎.
(3)在灵活性方面
Matlab引擎是通过ActiceX与Matlab进行通信,几乎能够应用Matlab中的所有功能,从操作角度和应用层面上来考虑灵活性很好,大多应用于算法调试与仿真等对集成度要求不高的场合[57].而MEX方式只要编写好mexFunction、MainWndProc和DrawData这三个函数并编译生成MEX文件,就可供Matlab调用C语言代码,这种方式的灵活性也是很好的.Mat和MCC两种方法都是基于代码转换的原理来完成混合编程的需要,代码更新和操作基本相同,但不能调用包含内联函数的程序,在功能实现上受到一定的限制,应用会受到一定的约束.同样,动态链接库和使用COM组件的方法在灵活性方面并没有太大差异,较Matlab引擎和MEX方式差一些.
有关论文范文主题研究: | 可靠性相关论文范文 | 大学生适用: | 电大论文、高校大学论文 |
---|---|---|---|
相关参考文献下载数量: | 81 | 写作解决问题: | 怎么写 |
毕业论文开题报告: | 论文模板、论文题目 | 职称论文适用: | 论文发表、职称评初级 |
所属大学生专业类别: | 怎么写 | 论文题目推荐度: | 优质选题 |
除了以上三个方面的分析结果,还有值得注意的一点是,MEX方式是惟一能在Matlab中调用VisualC++代码的方法.使用这种方法,可以使程序开发人员能在Matlab中充分发挥C/C++的优越性能,加速程序的运行速度,扩展程序的功能[9].当程序中对数学计算较多时,就会考虑使用Matlab数学函数库方法,这种方法可以很灵活的调用Matlab来编写应用数学计算类的程序.在表1中Mat与MCC、动态链接库与COM组件这两组方法的区别不是很明显,下面详细对比分析这两组方法,找出它们之间的差距,使程序员能更好地利用这些方法进行程序开发.
2.2Mat与MCC的对比分析
图2为Mat与MCC实现原理图,从图中可以看
可靠性相关论文范文参考文献,与VisualC++与Matlab混合编程方法的对比相关论文的格式参考文献资料: