Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
普通会员
注册日期: 2008-02-29
年龄: 44
帖子: 92
声望力: 19 ![]() |
![]()
(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推荐的混合编程方法。
__________________
百足氏冲锋衣万元大奖 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-03-16
年龄: 43
帖子: 2
声望力: 0 ![]() |
![]()
好文,谢谢!对VC和MATLAB混合编程有了一定的了解了。
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[分享][资料]《MATLAB语言常用算法程序集》一书的源程序 | wa2003 | MATLAB论坛 | 26 | 2011-03-02 10:55 |
[MATLAB图像处理] 求助——如何改变程序中中值滤波的窗口大小 | 什么睿 | MATLAB论坛 | 4 | 2009-05-14 19:14 |
正弦信号谐波失真系数的测试程序 | ywf | MATLAB论坛 | 2 | 2009-05-14 13:13 |
[原创]哥德巴赫猜想-张俊龙请白文章教授出示结果 | 龙舞山威 | 数学 | 0 | 2009-02-06 14:36 |
[求助]通过网络接口对示波器(TDS3052B)采集数据进行处理 | shendagui001218 | MATLAB论坛 | 3 | 2008-11-29 16:46 |