MATLAB与VC++混合编程的应用

时间:2024-02-26 点赞:50503 浏览:101423 作者原创标记本站原创

本文是一篇软件开发论文范文,关于软件开发毕业论文模板,关于MATLAB与VC++混合编程的应用相关毕业论文参考文献格式范文。适合软件开发及文件及自动化技术方面的的大学硕士和本科毕业论文以及软件开发相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:介绍了三种实用易行的MATLAB与VC++混合编程方式,即利用MATLAB的MCC编译器,使用MATCOM软件转化M文件,使用MATLAB的COMBuilder工具制作COM组件.针对具体程序分别应用三种方法来实现,对每种方法介绍了详细步骤.对三种方法进行了分析比较,总结了各自的优缺点,实现了MATLAB出色的图形处理功能和数值计算能力与VC++强大编程能力的结合.

关 键 词:MATLAB;VC++;混合编程

中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)10-2353-03

MATLAB是适合多学科,多种工作平台的功能强大的大型数值计算和系统分析软件.MATLAB将数值分析、矩阵计算、信号处理和图形显示相结合,包含了大量高度集成的函数,为科学研究、工程设计及众多学科领域提供了一种简洁、高效的编程工具,在数值分析、科学计算、算法开发、建模和仿真等方面具有独特优势[1].但是MATLAB使用的是解释性语言,限制了自身的执行速度;程序的执行限制与MATLAB自身的运行环境,不利于应用程序的开发;GUI功能较差.

VC++是强大的windows应用程序开发工具,它提供了高度集成的工具集和可视化集成的编程环境,包括了Microsoft的代码优化技术,极大提高了应用程序的设计效率,还提供了复杂的资源编辑器,拥有强大的GUI功能[2].

因此,实现MATLAB与VC++等可视化程序设计语言的混合编程,提高程序的执行速度,美化应用程序界面,脱离MATLAB环境,发布独立的应用程序,同时利用MATLAB在数值分析、矩阵计算、信号处理和图形显示等方面的强大功能,具有重要的意义.

1MATLAB与VC++混合编程方法

MATLAB与VC++有多种接口方法,但是一些常见方法难以实现,执行效率低,如MATLABEngine、直接调用MATLAB的C/C++数学函数库等.该文介绍三种只要在VC++平台下调用,不需要编写大量语句,更加适用于实际应用和软件开发的接口方法:利用MATLAB自带编译器MCC;使用MATCOM软件转换M文件;以及利用COMBuilder工具制作COM组件.

1.1利用MATLAB自带编译器MCC

MCC是MATLAB自带的优化编译器,作用是将m文件转化成C/C++代码,通过MCC,可以将MATLAB数学库、图形库和界面的MATLAB程序转化为DLL动态链接库、C/C++文件、EXE应用程序等一系列文件.MCC实现MATLAB与VC++混合编程的步骤为[3-4].

1.2使用MATCOM转换M文件

MATCOM是Mathworks公司推出的由MATLAB到C++的编译开发软件平台.MATCOM可以把M文件翻译成C++源文件,并编译为脱离MATLAB环境可独立运行的程序.它的编译环境为MIDEVA.通过MATCOM链接MATLAB的M文件有以下三种方式:

1)将M文件直接转换为C/C++,然后添加至MSVC工程中;

2)利用MATCOM生成独立执行的EXE文件,但由于VC和MATLAB之间不能交互,通用性差,仅适用于在VC中调用MATLAB实现图形显示.

3)实现在VisualC++6.0环境中直接对M文件进行编译,这种方法通过使用VisualMATCOM工具条,在脱离了MATLAB环境条件下,实现了VC++对M文件的调用,大大方便了应用程序的开发.

本文采用第三种—利用MATCOM直接在VC++中对M文件进行编译的方式,实现上述绘制正弦函数图形的程序[5].

1)安装MATCOM4.5,然后在VC++中设置MATCOM的调用环境,并生成一个VisualMATCOM工具条.

编译执行后,可通过点击对话框上的按钮,利用COM组件的方法,进行正弦图像的绘制,完成MATLAB与VC++的混合编程.

2结束语

通过上述三种方法的分析和实例应用,可以发现上述三种方式都不需要在VC++平台下编写大量语句,将程序的处理部分,全部用M文件完成,VC++中只需要简单的调用即可,相对于其他的混合编程方法,如通过MATLABEngine、直接调用MATLAB的C/C++数学函数库等执行效率低、需要用户在VC++下大量编写代码的方式,有着显著的优点,更加适用于实际应用和软件开发.这三种MATLAB与VC++的混合编程方法又有各自的特点:

1)利用MATLAB自带编译器MCC,将M文件转换成C/C++文件,除了上述优点外仍有很多限制,如:不能转换脚本M文件,只能转换M函数;不能使用MATLAB对象;不能用input或者eval操作MATLAB空间变量;不能动态地命名变量,然后用load或者se命令来操作;不能处理具有嵌套调用其他M文件的M文件;不能使用MATLAB内联函数等.

2)使用MATCOM转换M文件,相比其它两种方法,它具有转换过程简单,容易实现;不仅可以转换独立的脚本文件,也可以转换嵌套脚本文件;设置环境后,可以使用Matlab的部分工具箱函数等优点.但是,它仍旧存在以下不足:第一,需要安装MATCOM,为程序的开发增加了依赖性;第二,对struct等类的支持有缺陷,对class数据类型、部分绘图语句无法实现或得不到准确图象,尤其是三维图象;第三,利用MATCOM方式,在VC++编译过程中,程序很可能会发生不正常运行.

3)利用COMBuilder工具制作COM组件,这种方法增强了对图形的支持和程序的通用性,具有较高的运行效率,但是不支持脚本文件.因此在程序较大、调用工具箱函数或调用函数较多时推荐使用.

MATLAB与VC++的混合编程技术,既充分满足了对数值分析、矩阵运算和图形显示的要求,又降低了软件开发的难度,提高了系统的执行速率.但根据使用情况的不同,应选择不同的混合编程方法.

相关论文

实现VC++与MATLAB混合编程

本文是一篇软件开发论文范文,软件开发方面有关自考毕业论文开题报告,关于实现VC++与MATLAB混合编程相关本科毕业论文范文。适合软件开发及参。

VisualC++与Matlab混合编程方法的对比

本文是一篇可靠性论文范文,可靠性相关本科毕业论文范文,关于VisualC++与Matlab混合编程方法的对比相关大学毕业论文范文。适合可靠性及方法。

C#,JA与MATLAB混合编程技术

本文是一篇计算机论文范文,计算机方面有关毕业论文格式范文,关于C ,JA与MATLAB混合编程技术相关研究生毕业论文开题报告范文。适合计算机及。