Mex文件输出(多于一个)



我已经创建了一个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;
}

当作为next调用时:

function_mex(input_arguments)

生成一个输出变量。

带两个输出参数调用时,如下:

[x,y]=function_mex(input_arguments)

它给了我这样的信息:

? ?使用==> mtimes时出现错误。

我只是不知道为什么那个错误。这是我前一段时间在一些mex文件中使用的方法,它们工作正常。

有人能帮我吗?

您应该检查以确保matlab指定的输出数量等于3,因为您的mex文件正在创建3个输出并吐出3个输出。这是确保matlab不会抱怨输出数量的最简单方法。

相关内容

最新更新