执行提示错误的代码是:
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)?使用==>清除参数时出错必须包含一个字符串.
发布于 2012-02-15 16:37:40
我相信你的电话里需要有&prhs[0]:
mexCallMATLAB(0, NULL, 1, &prhs[0], "clear"); 我已经测试了这段代码,它可以工作(在一个名为mextest.c的文件中):
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
mexCallMATLAB(0,NULL,1, &prhs[0], "clear");
}其结果是:
>> a = 10;
>> who
Your variables are:
a
>> mextest('a')
>> who
>> 发布于 2012-02-16 01:14:09
Callmatlabtest(10)与clear(10)相同,因为callmatlabtest只是将自己的输入转发给clear (通过mexCallMATLAB)。clear函数需要一个字符串输入,而10是一个双变量,因此错误消息“参数必须包含一个字符串”。
https://stackoverflow.com/questions/9297100
复制相似问题