C++与matlab间的引擎分析和总结.docxVIP

  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文档。上传文档
查看更多
理解一 Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快。但在科学计算方面函数库显得不够丰富、读取、显示数据图形不方便。 Matlab 是一款将数值分析、矩阵计算、信号处理和图形显示结合在一起,包含大量高度集成的函数可供调用,适合科学研究、工程设计等众多学科领域使用的一种简洁、高 效的编程工具。不过由于 Matlab 使用的是解释性语言,大大限制了它的执行速度和应用场合。基于 VC 和 Matlab 混合编程是很多熟悉 VC++ 编程而又需要进行科学计算、数据仿真的科研人员常用的一种方式,其中最简单也最直接的方法就是调用 Matlab 引擎。本文以下部分将详细介绍通过 VC++6.0 调用 Matlab6.5 引擎来达到 VC++ 与 Matlab 数据共享编程的方法。 什么是 Matlab 引擎 所谓 Matlab 引擎( engine ),是指一组 Matlab 提供的接口函数,支持 C/C++ 、Fortran 等语言,通过这些接口函数,用户可以在其它编程环境中实现对 Matlab 的控制。可以主要功能有: ★ 打开 / 关闭一个 Matlab 对话; ★ 向 Matlab 环境发送命令字符串; ★ 从 Matlab 环境中读取数据; ★ 向 Matlab 环境中写入数据。 与其它各种接口相比,引擎所提供的 Matlab 功能支持是最全面的。通过引擎方式,应用程序会打开一个新的 Matlab 进程,可以控制它完成任何计算和绘图操作。对所有的数据结构提供 100% 的支持。同时,引擎方式打开的 Matlab 进程会在任务栏显示自己的图标,打开该窗口,可以观察主程序通过 engine 方式控制 Matlab 运行的流程,并可在其中输入任何 Matlab 命令。 实际上,通过引擎方式建立的对话,是将 Matlab 以 ActiveX 控件方式启动的。在 Matlab 初次安装时,会自动执行一次: matlab /regserver 将自己在系统的控件库中注册。如果因为特殊原因,无法打开 Matlab 引擎,可以在 Dos 命令提示符后执行上述命令,重新注册。 配置编译器 要在 VC 中成功编译 Matlab 引擎程序,必须包含引擎头文件 engine.h 并引入 Matlab 对应的库文件 libmx.lib 、 libmat.lib 、 libeng.lib 。具体的说,打开一个工程后,做如下设置(以 VC6 为例): 通过菜单工程 / 选项,打开设置属性页,进入 Directories 页面,在目录下拉列表框中选择 Include files ,添加路径: C:\matlab\extern\include (假定 matlab 安装在 C:\matlab 目录)。 选择 Library files ,添加路径: C:\matlab\extern\lib\win32\microsoft\msvc60 。 通过菜单工程 / 设置,打开工程设置属性页,进入 Link 页面,在 Object/library modules 编辑框中,添加文件名 libmx.lib libmat.lib libeng.lib 。 以上步骤 1) 、 2) 只需设置一次,而步骤 3) 对每个工程都要单独设定,对于其它 C++ 编译器如 Borland C++ builder ,设置大体相同,不再赘述。 引擎 API 详解 在调用 Matlab 引擎之前,首先应在相关文件中加入一行: #include enging.h ,该文件包含了引擎 API 函数的说明和所需数据结构的定义。可以在 VC 中调用的引擎函数分别如下: 引擎的打开和关闭 engOpen -打开 Matlab engine 函数声明: Engine *engOpen(const char *startcmd); Engine *engOpen(const char *startcmd); 参数 startcmd 是用来启动 Matlab 引擎的字符串参数,在 Windows 操作系统中只能为 NULL 。 函数返回值是一个 Engine 类型的指针,它是在 engine.h 中定义的 engine 数据结构。 EngClose -关闭 Matlab 引擎函数声明: int engClose(Engine *ep); int engClose(Engine *ep); 参数 ep 代表要被关闭的引擎指针。 函数返回值为 0 表示关闭成功,返回 1 表示发生错误。例如,通常用来打开 / 关闭 Matlab 引擎的代码如下: Engine *ep; // Engine *ep; // 定义 Matlab 引擎指针。 if (!(ep=engOpen(

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档