首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mex文件中的mexCallMATLAB执行清除命令时Matlab的错误

使用mex文件中的mexCallMATLAB执行清除命令时Matlab的错误
EN

Stack Overflow用户
提问于 2012-02-15 16:22:43
回答 2查看 327关注 0票数 2

执行提示错误的代码是:

代码语言:javascript
复制
 void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
 {
    double p;
    p  =   (double)mxGetScalar(prhs[0]);
    mexCallMATLAB(0,NULL,1, prhs, "clear");

 }

在这里,我试图清除一个变量,它位于由prhs指向的工作区中。请建议我做错了什么。

使用一个参数执行此函数时的错误消息。提供下列错误消息:

愈伤组织(10)?使用==>清除参数时出错必须包含一个字符串.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-15 16:37:40

我相信你的电话里需要有&prhs[0]

代码语言:javascript
复制
mexCallMATLAB(0, NULL, 1, &prhs[0], "clear"); 

我已经测试了这段代码,它可以工作(在一个名为mextest.c的文件中):

代码语言:javascript
复制
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
  mexCallMATLAB(0,NULL,1, &prhs[0], "clear");
}

其结果是:

代码语言:javascript
复制
>> a = 10;
>> who
Your variables are:
a  
>> mextest('a')
>> who
>> 
票数 1
EN

Stack Overflow用户

发布于 2012-02-16 01:14:09

Callmatlabtest(10)与clear(10)相同,因为callmatlabtest只是将自己的输入转发给clear (通过mexCallMATLAB)。clear函数需要一个字符串输入,而10是一个双变量,因此错误消息“参数必须包含一个字符串”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9297100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档