预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据 Vc++与MATLAB混合编程的实现方法姜浩智,廖宁华串11高{lI}技术企业者是UNI)浠冷行方式下使用。值得注意的—点是,由于mee编保算法在理论原理上的正确性。文章介绍了采用VisualC++与MATLAB进行混合编程的重要特占’和意义,重点阐述一、VC++与M肖TLAB混合编程的实现方法概述二、采用MATLAB自带编译器fflCA3摘要:在科学研究和工程应用中,科研工作人员往往需要首先提出一种新算法;然后在相应的仿真工具里面进行仿真验证,如果仿真验证错误,则应该重新对算法进行修正,并再次进行仿真验证,直到仿真验证通过,此时可以确了三种不同的visualc++与MATLAB混合编程的方法,并对这三种方法做了全面的分析比较和总结。关键词:vC++;MATLAB;MATCOM;混合编程;编译器中图分类号:TP311文献标识码:A文章编号:1009—2374(20LO)09-0013-04在科学研究和工程应用中,科研工作^员往往需要首先提出一种新算法;然后在相应的仿真工具里面进行仿真验证,如果仿真验证错误。则应该重新对算法进行修正,并再次进行仿真验证,直到仿真验证通过,此时可以确保算法在理论原理上的正确性,但是其实际性能还有待进一步验证;接下来在相应的实际工程开发环境下实现算法,测试算法的各项性能指标是否符合技术指标要求,若不满足,则应当改进算法,并再次投入到前面的仿真验证阶段,直至算法的各项性能指标满足要求,或在某种前提条件及评价标准F3*法总体性能指标最优。图1一般的科研工作流程图在仿真验证阶段,目前的主要仿真工具普遍采用Works公司推出的数学软件,它将数值分析,矩阵计算,信号处理和图形显示结合在一起,包含大量高度集成的函数可供调用,命令语句功能十分强大,为科学研究、工程设计及众多学科领域提供了一种简洁,高效的编程工具。然而MATLAB并非标准的编译链接语言,而是一种解释性语言,这就大大限制了其代码的执行速度,并且源代码的公开不利于算法和数据的保密,局限于MATLAB运行环境,不能用于开发商用软件。与此相反,C/C++环境下通过编译链接后的目标代码质量高,程序执行效率高,还具有良好的不同平台可移植性,所以工程开发时常常需要将已经验证通过的算法在C/C++环境下实现。可见,为了提高研发效率有必要使用MATLAB和C/C++混合编程。不过这里就存在重复编码的问题。也就是说,同样的算法要在MATLAB和c,C++环境下各写一次代码,增加了不必要的工作。因此这样就很自然的提出了一个关于如何把现有的已经通过仿真验证的n】文件自动转换为符合工程实践要求的C/C++文fl:的问题。下面将介绍三种不同Wirks公司推出了一系列的MATLAB自带编译器来解决MATLAB与C/C++的接口问题。编译器Incc可以将MATLAB的C,c++数学库编译为、,℃++编译器能识别的代码嵌入vC++环境。mCC是一种调用MATLAB编译器的命令它既可以在MATLAB命令行方式下使用,也可以在DOS或译器本身无法编译脚本文件,因此,需要将脚本文件改写成函数文件,也就是说在原始脚本文件的前端,加一行使用关键字funetion定义的函数即可。在使用mcc命令实现MATLAB中的m函数文件自动转化为C圮++文件时,首先将要调用的函数在MATLAB中写成H皮件,然后使用mce命+将m文件编译成可以在vc++中调用的cpp3℃件,最后在vc++程序中调用执行。也可以用砒c编译器将n皮件编译成为stand-alone程序。mec编译器把m文件转换成相应的C/c++文件时提供了不同种类命令参数以便控制输出不同的文件。一x可以把m文件转换为C文件并且创建相应的能直接在一s可以把-—】文件转换为c文件并目创建相应的使用动态大一nl可以把m文件转换为c文件并且仓0建独立于MATLAB环境运行的独立可执行文件。一p可以把m文件转换为c+斗文件并目创建独立于MATLAB20lO年第9期(总第144期)China(CumulativetyNO.144)((江西路通科技有限公司,江西南昌330002)上述的整个过程如图l所示:MATLAB。MATLAB是Math的方法:从MATLAB51版本开始,MathMATLIB中调用的CMEx.mK女.件。小输入输出的SimulinkS-fimetion。一13—NO.9.2010Hi-TeehEnterprises 万方数据 类库舭lib的调用,该函效可以在c,c++源代码的任意地方一Bpcode可以把茈瀚换为M需要的觥l::libmatpm.1ib,libmatlbmx.1ib,libmadb.1ib,libmx.一Bs舸以把包含调用绘图函数的m文f牛转换为c文件并且Linl【选项卡,在Obje删bral驷10dule8