Mex文件输出(多个)

时间:2011-12-23 10:40:11

标签: file variables 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;

}

当被称为下一个:

function_mex(input_arguments)

它生成一个输出变量。

使用两个输出参数调用时,如下所示:

[x,y]=function_mex(input_arguments)
它给了我一条信息:

  

???使用==>时出错mtimes输出参数太多。

我只是不知道为什么会出错。这是我前一段时间在一些mex文件中做到的方式,并且它们正常工作。

愿任何人帮助我吗?

1 个答案:

答案 0 :(得分:0)

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