2011-12-23 13 views
1

私は唯一の出力引数で呼び出されたときに正常に動作しますMEXファイルを作成しているが、複数で呼び出されたとき、それは私に次の出力が得られます。メックスファイル出力(1以上)

? ?? ==> mtimesを使用したエラー出力引数が多すぎます。

次に示すようにIは、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) 

それは単一の出力変数を生成します。次のように、2つの出力引数で呼び出された場合

[x,y]=function_mex(input_arguments) 

それは私にメッセージ与える:

を??? ==> mtimesを使用したエラー出力引数が多すぎます。

なぜこのエラーが発生するのか分かりません。これは、以前私がmexファイルで行ったやり方で、正しく動作しました。

誰でも助けてもらえますか?

答えて

0

あなたのmexファイルは3つの出力を作成し、3つの出力を吐き出しているので、matlabで指定された出力の数が3であることを確認する必要があります。それはmatlabが出力の数について不平を言っていないことを確認する最も簡単な方法です。

関連する問題