我已经创建了一个mex文件,当只使用一个输出参数调用时,它可以正常工作,但是当使用多个参数调用时,它会给出下一个输出:
我在mex函数中管理输出参数,如下所示:? ?使用==> mtimes时出现错误。
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;
}
当作为next调用时:
function_mex(input_arguments)
生成一个输出变量。
带两个输出参数调用时,如下:
[x,y]=function_mex(input_arguments)
它给了我这样的信息:
? ?使用==> mtimes时出现错误。
我只是不知道为什么那个错误。这是我前一段时间在一些mex文件中使用的方法,它们工作正常。
有人能帮我吗?
您应该检查以确保matlab指定的输出数量等于3,因为您的mex文件正在创建3个输出并吐出3个输出。这是确保matlab不会抱怨输出数量的最简单方法。