2011-12-23 75 views
1

我已經創建了被稱爲只有一個輸出參數時,工作正常一個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

您應該檢查以確保由matlab指定的輸出數量等於3,因爲您的mex文件正在創建3個輸出並吐出3個輸出。這是確保matlab不會抱怨輸出數量的最簡單方法。

相關問題