浅析VC与matlb接口编程(一).doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅析VC与matlab接口编程(一) 作者:孙科 QQ箱:c_dinco@   除了使用MATCOM之外,matlab与vc的混合编程还有其他的几种方法: 1 通过matlab engine方式。此种方法需要在机器上安装matlab软件,而且执行效率低,因此在实际应用中不常采用这种方法,在软件开发中也不可行,比较适合个人使用或做演示用。 2 直接调用matlab的c/c++数学函数库。vc中可以直接使用matlab提供的c/c++数学函数,此方法需要对c/c++语言非常熟悉。 3 用matlab自带的matlab compiler.此种方法有很多限制: (1)不能转换脚本m文件,只能转换m函数; (2)不能使用matlab对象; (3)不能用input或者eval操作matlab空间变量; (4)不能动态的命名变量,然后用load或者save命令来操作,不能对使用load指令装载普通文本文件的m文件操作; (5)不能处理具有嵌套调用其他m文件的m文件; (6)不能使用matlab内联函数 (7)不能对使用了java接口的matlab代码文件使用 4 使用matlab的combuild工具: 该方法简单,通用性强,几乎可以使用matlab的任何函数,因此在程序较大,调用函数较多时使用起来效果很好,此方法也是mathworks公司推荐的使用方法; 5 使用matcom工具。相比其他方法而言,有下列优点: (1)转换过程简单,容易实现; (2)可以方便的生成dll和exe文件; (3)不仅可以转换独立的脚本文件,也可以转换嵌套的脚本文件; (4)设置环境后,可以使用matlab工具箱函数; 其缺点是: (1)对struct等类的支持有缺陷; (2)部分绘图语句无法实现或得不到准确的图像,尤其是三维图像。 在不涉及到三维作图以及m文件不大的情况下,使用效果很好。 Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。 MATCOM编译M文件,先将M文件按照与MATCOM的cpp库的对应关系,翻译为cpp源代码,然后用C编译器将cpp文件编译成相应的exe或dll文件。用MATCOM方式,生成的代码可读性好,支持图形函数,支持M文件编译过程中的文件嵌套情况,可脱离MATLAB环境;缺陷为待编译的M文件不能涉及MATLAB的内部类。 图一 安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。 图二 Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。                   图三 下面详细介绍如何将m文件编译后放入VC中。 1、启动MIDEVA ,File-New,新建如下Test1.m文件: x=1:0.1:10; y=sin(x); plot(x,y); 将文件保存(如图四)。      图四 m文件保存的默认位置为:matcom安装目录\matcom45,生成的C++文件保存的默认位置为:matcom安装目录\matcom45\Debug\,本例matcom安装目录为C盘 即 C:\matcom45\Debug\,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。 2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。 在面板上添加一个ID为IDC_BUTTON1按扭。 3、将C:\matcom45\Debug目录下的Test1.cpp文件的内容拷贝到 void CExamleDlg::OnButton1()下,(如图五)。 ???????????? 图五 4、将C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程-添加工程-Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。 ????????? 图六 5、在ExamleDlg.cpp中加入如下代码: #include mat

文档评论(0)

zhonglanzhuoshi + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档