欢迎来到天天文库
浏览记录
ID:34396895
大小:1.39 MB
页数:4页
时间:2019-03-05
《vc_与matlab混合编程的实现方法new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2010年第9期NO.9.2010(总第144期)ChinaHi-TechEnterprises(CumulativetyNO.144)VC++与MATLAB混合编程的实现方法姜浩智,廖宁华((江西路通科技有限公司,江西南昌330002)摘要:在科学研究和工程应用中,科研工作人员往往需要首先提出一种新算法;然后在相应的仿真工具里面进行仿真验证,如果仿真验证错误,则应该重新对算法进行修正,并再次进行仿真验证,直到仿真验证通过,此时可以确保算法在理论原理上的正确性。文章介绍了采用VisualC++与MATLA
2、B进行混合编程的重要特点和意义,重点阐述了三种不同的VisualC++与MATLAB混合编程的方法,并对这三种方法做了全面的分析比较和总结。关键词:VC++;MATLAB;MATCOM;混合编程;编译器中图分类号:TP311文献标识码:A文章编号:1009-2374(2010)09-0013-04法在C/C++环境下实现。可见,为了提高研发效率有必要使用一、VC++与MATLAB混合编程的实现方法概述MATLAB和C/C++混合编程。不过这里就存在重复编码的问在科学研究和工程应用中,科研工作人员往往需要首
3、先提题。也就是说,同样的算法要在MATLAB和C/C++环境下各写出一种新算法;然后在相应的仿真工具里面进行仿真验证,如一次代码,增加了不必要的工作。因此这样就很自然的提出了果仿真验证错误,则应该重新对算法进行修正,并再次进行一个关于如何把现有的已经通过仿真验证的m文件自动转换为仿真验证,直到仿真验证通过,此时可以确保算法在理论原理符合工程实践要求的C/C++文件的问题。下面将介绍三种不同上的正确性,但是其实际性能还有待进一步验证;接下来在相的方法:应的实际工程开发环境下实现算法,测试算法的各项性能指标是
4、否符合技术指标要求,若不满足,则应当改进算法,并再次二、采用MATLAB自带编译器mcc投入到前面的仿真验证阶段,直至算法的各项性能指标满足要从MATLAB51版本开始,MathWorks公司推出了一系列的求,或在某种前提条件及评价标准下算法总体性能指标最优。MATLAB自带编译器来解决MATLAB与C/C++的接口问题。编上述的整个过程如图1所示:译器mcc可以将MATLAB的C/C++数学库编译为VC++编译器能识别的代码嵌入VC++环境。mcc是一种调用MATLAB编译器的命令,它既可以在MATLA
5、B命令行方式下使用,也可以在DOS或者是UNIX命令行方式下使用。值得注意的一点是,由于mcc编译器本身无法编译脚本文件,因此,需要将脚本文件改写成函数文件,也就是说在原始脚本文件的前端,加一行使用关键字function定义的函数即可。在使用mcc命令实现MATLAB中的m函数文件自动转化为C/C++文件时,首先将要调用的函数在MATLAB中写成m文件,然后使用mcc命令将m文件编译成可以在VC++中调用的cpp文在仿真验证阶段,目前的主要仿真工具普遍采用件,最后在VC++程序中调用执行。也可以用mcc编
6、译器将m文件MATLAB。MATLAB是MathWorks公司推出的数学软件,它将编译成为stand-alone程序。数值分析,矩阵计算,信号处理和图形显示结合在一起,包含mcc编译器把m文件转换成相应的C/C++文件时提供了不大量高度集成的函数可供调用,命令语句功能十分强大,为科同种类命令参数以便控制输出不同的文件。学研究、工程设计及众多学科领域提供了一种简洁,高效的编-x可以把m文件转换为C文件并且创建相应的能直接在程工具。然而MATLAB并非标准的编译链接语言,而是一种解MATLIB中调用的CMEX
7、-file文件。释性语言,这就大大限制了其代码的执行速度,并且源代码的-S可以把m文件转换为C文件并且创建相应的使用动态大公开不利于算法和数据的保密,局限于MATLAB运行环境,不小输入输出的SimulinkS-function。能用于开发商用软件。与此相反,C/C++环境下通过编译链接-m可以把m文件转换为C文件并且创建独立于MATLAB环后的目标代码质量高,程序执行效率高,还具有良好的不同平境运行的独立可执行文件。台可移植性,所以工程开发时常常需要将已经验证通过的算-p可以把m文件转换为C++文件并且
8、创建独立于MATLAB13环境运行的独立可执行文件。为C/C++文件。在MATCOM的DEBUG目录下可以找到生成的h,-Bsgl可以把包含调用绘图函数的m文件转换为C文件并且cpp,exe等文件。然后添加需要的C/C++文件到MSVC工程中,再创建独立于MATLAB环境运行的独立可执行文件(需要独立图包含头文件就可以实现调用。形库SGL)。2.由MIDEVA直接生成EXE文件,然后在VC中通过Shell调-Bsglcpp可以
此文档下载收益归作者所有