我创建了一个mex文件,只在输出参数调用时工作正常,但是在使用多个参数调用时它会给我下一个输出:
???使用==>时出错mtimes输出参数太多。
我在mex函数中管理输出参数,如下所示:
void mexFunction( int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[] ) {
mxArray *FirstTerm,*SecondTerm,*ThirdTerm,..
....
FirstTerm = mxCreateDoubleMatrix(N,M,mxCOMPLEX);
FirstTermRe = mxGetPr(FirstTerm);
FirstTermIm = mxGetPi(FirstTerm);
SecondTerm = mxCreateDoubleMatrix(N,M,mxCOMPLEX);
SecondTermRe = mxGetPr(SecondTerm);
SecondTermIm = mxGetPi(SecondTerm);
ThirdTerm = mxCreateDoubleMatrix(N,M,mxCOMPLEX);
ThirdTermRe = mxGetPr(ThirdTerm);
ThirdTermIm = mxGetPi(ThirdTerm);
....
....
plhs[0] =FirstTerm;
plhs[1] =SecondTerm;
plhs[2] =ThirdTerm;
}
当被称为下一个:
function_mex(input_arguments)
它生成一个输出变量。
使用两个输出参数调用时,如下所示:
[x,y]=function_mex(input_arguments)
它给了我一条信息:
???使用==>时出错mtimes输出参数太多。
我只是不知道为什么会出错。这是我前一段时间在一些mex文件中做到的方式,并且它们正常工作。
愿任何人帮助我吗?
答案 0 :(得分:0)
您应该检查以确保matlab指定的输出数量等于3,因为您的mex文件正在创建3个输出并吐出3个输出。这是确保matlab不会抱怨输出数量的最简单方法。