Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Mex文件输出(多个)_File_Variables_Mex - Fatal编程技术网

File Mex文件输出(多个)

File Mex文件输出(多个),file,variables,mex,File,Variables,Mex,我创建了一个mex文件,当仅使用一个输出参数调用时,该文件可以正常工作,但当使用多个参数调用时,它会提供下一个输出: ???使用==>MTIME时出错输出参数过多 我管理mex函数中的输出参数,如下所示: void mexFunction( int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[] ) { mxArray *FirstTerm,*SecondTerm,*ThirdTerm,.. .... FirstTerm

我创建了一个mex文件,当仅使用一个输出参数调用时,该文件可以正常工作,但当使用多个参数调用时,它会提供下一个输出:

???使用==>MTIME时出错输出参数过多

我管理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)
这给了我一个信息:

???使用==>MTIME时出错输出参数过多

我只是不知道为什么会有这样的错误。前一段时间我在一些mex文件中就是这样做的,它们工作正常


有人能帮我吗?

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