PDA

查看完整版本 : [资料]VC 连接matlab的几种方式


tolabfans
2009-02-18, 23:06
(1) 使用 Matlab提供的 mcc编译器
用 Matlab的mcc编译器将Matlab的源程序文件(*. m) 转变为 VC++能够识别的程序文件(*.cpp),然后添加到 VC+ +的工程中一起编译,也可以用 mcc编译器将Matlab源文件(*.m)直接编译为stand-alone程序,在附带必要的函数 库后能脱离Matlab环境独立运行。利用这种方法,转换后的c/c++文件代码冗余度大、可读性不强,执行速度也比传统c/c++代码慢,但是在提高开发效率上还是一种不错的选择。
(2) 利用ActiveX,调用Matlab服务引擎库
ActiveX控件技术是OLE技术的延伸,也是COM组件的重要组成,它代表了一种应用程序的开发策略。Matlab引擎(engine),是指一组Matlab接口函数, 通过这些接口函数,用户可以在其它编程环境中实现对 Ma t l a b的控制调用。
(3) 使用第三方软件Matcom
Matcom是Mathtools公司开发的可以将M文件转换成相同功能C++代码的工具软件,其功能比mcc命令更强大,MIDEVA是其集成调试编译环境;Matcom本身提供许多功能函数,通过必要设置,即可实现与 VC++的混合编程,同时,Matcom还提供编译转换功能,能够将Matlab函数或者代码转换为C+ +形式的DLL或者EXE文件,实现脱离Matlab环境的运行,因此,这种方法既可以保持 Matlab的优良算法和c++代码的执行效率,又可以通过转换的可执行文件,增加知识产权的保护。
(4) 使用 Matlab Visual Studio Add-in工具
Matlab Visual Studio Add-in提供了一种 VC++和Matlab直接集成的途径。它有一些新的特征:快速集成M文件到 VC++工程中,创建独立的c/c++应用程序或DLL;通过M文件创建共享库或 MEX文件;内含 Visual Matrix Viewer,调试过程中可以查看矩阵变量的值;直接修改M源文件而不是修改生成 的c/ c++文件;方便快捷地打包应用程序等。
(5) 利用C0M组件技术
COM是Component Object Module的简称, 它是一种通用的对象接口,任何语言只要按照这种接口标准, 就可以实现调用组件。Matlab的COM Builder能够帮助用户把 Matlab编写的M程序文件快速地做成COM 组件,供使用其他语言的客户端调用。该方法几乎可以调用Matlab的任何函数,而且实现简单, 通用性强,程序间无需环境切换,代码执行速度快,因此可获得较高的执行效率,也是Matlab推荐的混合编程方法。

joshua_gao
2009-03-22, 09:49
好文,谢谢!对VC和MATLAB混合编程有了一定的了解了。