c - 在 mex 文件中使用 mexCallMATLAB 执行清除命令时出现 Matlab 错误

标签 c matlab

执行提示错误的代码为:

 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[0] 指向的工作区中的变量。 请指出我做错了什么。

使用一个参数执行此函数时出现错误消息。给出以下错误消息:

callmatlabtest(10) ??? Error using ==> clear Argument must contain a string.

最佳答案

我相信您的通话中需要包含 &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
>> 

关于c - 在 mex 文件中使用 mexCallMATLAB 执行清除命令时出现 Matlab 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297100/

相关文章:

c - 编码 CALL 指令以调用函数

C 读取写入文件

c - 如何在 C 中打印 errno 的符号名称?

python - 矩阵乘法问题 - Numpy vs Matlab?

matlab - 检查天气预报值是否遵循高斯分布或不使用 matlab?

algorithm - 将图像对象分成N个相等像素的部分(方法)

c - 在c中分割字符串而不改变原始字符串

c - 在哪里放置 printf 以避免在我的 rpn 计算器中多次打印输出?

matlab - 如何使用句柄在 MATLAB 中绘制多条曲线

python - Numpy + Python 比 MATLAB 慢 15 倍?