matlab引擎 vc 自定义函数,VC++与Matlab混合编程之引擎操作详解(2)引擎API详解

《VC++与Matlab混合编程之引擎操作详解(2)引擎API详解》由会员分享,可在线阅读,更多相关《VC++与Matlab混合编程之引擎操作详解(2)引擎API详解(2页珍藏版)》请在人人文库网上搜索。

1、3. 引擎 API 详解在调用 Matlab 引擎之前,首先应在相关文件中加入一行:#include enging.h,该文件包含了引擎 API 函数的说明和所需数据结构的定义。可以在 VC 中调用的 引擎函数分别如下:3.1 引擎的打开和关闭engOpen-打开 Matlab engine函数声明:Engine *engOpen(const char *startcmd);参数startcmd是用来启动Matlab引擎的字符串参数,在 Windows操作系统中只 能为 NULL 。函数返回值是一个Engine类型的指针,它是在engine.h中定义的engine数据结 构。EngClose-。

2、关闭 Matlab 引擎函数声明:int engClose(Engine *ep);参数ep代表要被关闭的引擎指针。函数返回值为 0 表示关闭成功,返回 1表示发生错误。例如,通常用来打开 /关闭 Matlab 引擎的代码如下:Engine *ep; /定义 Matlab 引擎指针。if (!(ep=engOpen(NULL) / 测试是否启动 Matlab 引擎成功。MessageBox(Cant start Matlab engine! );exit(1);engClose(ep); /关闭 Matlab 引擎。3.2向Matlab发送命令字符串engEvalString发送命令让Matl。

3、ab执行。函数声明:int engEvalString(Engine *ep, Const char *string);参数ep为函数engOpen返回的引擎指针,字符串string为要matlab执行的命令。 函数返回值为0表示成功执行,返回1说明执行失败(如命令不能被 Matlab正 确解释或 Matlab 引擎已经关闭了)。3.3 获取 Matlab 命令窗口的输出要在VC中获得函数engEvalString发送的命令字符串被 Matlab执行后在matlab 窗口中的输出,可以调用 engOUtputBuffer 函数。函数声明:int engOutputBuffer(Engine *。

4、ep, char *p, int n);参数ep为Matlab引擎指针,p为用来保存输出结构的缓冲区,n为最大保存的 字符个数,通常就是缓冲区 p 的大小。该函数执行后,接下来的 engEvalString 函数所引起的命令行输出结果会在缓冲区 p中保存。如果要停止保存,只需调用 代码:engOutputBuffer(ep, NULL, 0)。3.4 读写 Matlab 数据3.4.1从 Matlab 引擎工作空间中获取变量。mxArray *engGetVariable(Engine *ep, const char *name);参数ep为打开的Matlab引擎指针,name为以字符串形式指。

5、定的数组名。函数返回值是指向name数组的指针,类型为mxArray* ( mxArray数据类型在本 文第 4 节详细简介)。3.4.2 向 Matlab 引擎工作空间写入变量。int engPutVariable(Engine *ep, const char *name, const mxArray *mp);参数ep为打开的Matlab引擎指针,mp为指向被写入变量的指针,name为变量 写入后在 Matlab 引擎工作空间中的变量名。函数返回值为 0 表示写入变量成功,返回值为 1表示发生错误。3.5调用引擎时显示/隐藏Matlab主窗口默认情况下,以engine方式调用Matlab的。

6、时候,会打开Matlab主窗口,可在其 中随意操作。但有时也会干扰应用程序的运行,可用以下设置是否显示该窗口。int engSetVisible(Engine *ep, bool value);参数ep为打开的Matlab引擎指针,value为是否显示的标志,取值true (或1) 表示显示Matlab窗口,取值false (或0)表示隐藏 Matlab窗口。函数返回值为 0 表示设置成功,为 1 表示有错误发生。 要获得当前 Matlab 窗口的显示 /隐藏情况,可以调用函数: int engGetVisible(Engine *ep, bool *value);参数ep为打开的Matlab引擎指针,Value为用来保存显示/隐藏情况的变量(采 用指针方式传递)。函数返回值为 0 表示获取成功,为 1 表示有错误发生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值