基于MATCOM的VC++与MATLAB混合编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MATCOM的VC与MATLAB混合编程

基于MATCOM的VC++与MATLAB的混合编程(都是单向的) 引言 VC++是Windows平台下流行的可视化应用程序开发环境之一,它为软件开发人员提供了完整的编辑、编译和调试工具以及建立在Win32API基础上的MFC类库,可以有效缩短Windows应用程序的开发周期。用VC++开发出的程序具有容易维护、界面友好、执行速度快等优点。 用VC++开发工程技术方面的程序时,当涉及矩阵运算或数据可视化,工程技术人员不得不编写大量繁琐的代码。因此,Matlab与VC++混合编程可以吧Matlab在数值计算、算法设计以及数据可视化等领域的优势与VC++有机结合在一起,可以提高程序处理的效率和稳定性,同时也大大减少编写算法代码的工作量,提高工作效率。 常用方法 Matlab Compiler Matlab Compiler是Matlab自带的编译器,可以通过设置mcc命令的选项,将m文件编译成动态链接库文件、C/C++文件、独立可执行应用程序等。Matlab Compiler将m文件转化成独立应用程序过程中的C/C++文件,原则上可以被其他C/C++代码调用。但是这种方法不能处理嵌套调用其他m文件的m文件,不支持Matlab对象,不能编译Matlab的一些内联函数,并且转换代码的可读性较差。 (2) Matlab Combuilder COM是Component Object Module的简称,是一种通用对象接口,任何语言只要按照这种接口标准,就可以实现调用。Matlab的Combuilder把Matlab编写的程序做成COM组建,供其他语言调用。该方法实现简单,通用性强,而且几乎可以使用Matlab的任何函数,因此在程序较大、调用工具箱函数或调用函数较多时推荐使用。 (3)通过Matlab Engine方式 Matlab Engine采用客户机/服务器模式,C/C++程序作为前台客户机,Matlab作为计算引擎,利用Engine实现Matlab的强大功能,引擎程序和C++程序各作为一个进程单独运行,通过进程间的通信机制进行交互。这种方法,需要在机器上安装Matlab软件,而且程序执行效率低。 (4)直接调用Matlab C/C++ Math Library 数学函数库 Matlab中提供了可以供C/C++语言调用的C/C++数学函数库,在VC++中可以直接使用这些函数。但使用这种方法调用Matlab的工具箱函数有很大困难,适合对C/C++语言比较熟悉的用户使用,并且不支持Matlab中丰富的图形句柄处理函数。 (5)Matlab中调用C程序-MEX文件 一般形式的C源代码程序并不能直接被编译成MEX文件,只有按照约定格式编写的C源代码文件才能转化为有效的MEX文件。(参见北航出版的《精通Matlab与C\C++混合程序设计》) (6) 使用Matcom工具 Matcom是MatTools公司开发的一个基于C++矩阵函数库Matrix的转换Matlab的m文件到CPP文件的程序,它可将Matlab的源代码编译成同等功能的C++源代码,既保持了Matlab的优良算法,又保持了C++的执行效率高的优势。Matcom软件平台本身的功能相当强大,提供了近千个Matlab的基本功能函数,通过必要的设置,就可以直接实现与C++的混合编程,而不必再依赖Matlab。同时,Matcom还能够将Matlab函数或者编写的Matlab程序转化为C++形式的DLL,它与VC++有良好的接口,只要包含必要的库文件和头文件即可实现对Matlab函数的调用,而无需运行Matlab。Matcom转换过程简单,不仅可以转换独立的脚本文件,也可以转换嵌套脚本文件,可以方便的生成动态链接库文件和可执行文件,它还支持一定的图形显示,生成代码的可读性好。 Matcom可以通过插件的形式有机的嵌入VC++开发环境(即Visual Matcom),实现可视化编程,利用Visual Matcom插入m文件到VC++工程中可自动实现所需库文件、头文件、CPP文件的连接及编译环境的设置,如果出现编译错误,直接修改m文件即可。 利用Matcom可以在VC++中直接书写类Matlab和Matcom语句实现Matlab与C的混合编程。 此方法的缺陷是不能涉及Matlab的内部类,对于Matlab中struct类不支持 将Matcom4.5中的ago4501.dll和v4501v.dll放在工程目录下,即可脱离Matcom4.5实现运算和绘图。 参见:《MathTools Ltd. MIDEVA MATCOMVisual MATCOM user’s guide V4.5 release》 《MathTools Ltd.Using Visual MatixLIB in MFC appli

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档