このエラーメッセージの前に持っていた人はいますか:
タイプ 'double' の入力引数の関数またはメソッド 'name of function' が定義されていません。
mex ファイルをコンパイルすると、常にこのエラー メッセージが表示されます。パスをよく確認しましたが、正しいパスのようです。
これは私のコードで、mex ファイルはamortiss.c
#include "mex.h"
/* The computational functions */
void arrayquotient(double input1, double input2, double output1)
{
output1=input1/input2;
}
/* The gateway function */
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
/* variable declarations here */
double input1; /* input scalar 1 */
double input2; /* input scalar 2*/
double output1; /* output scalar 1 */
/* code here */
/* get the value of the scalar input1 */
input1 = mxGetScalar(prhs[0]);
/* get the value of the scalar input2 */
input2 = mxGetScalar(prhs[1]);
/* get the value of the scalar input3 */
input3 = mxGetScalar(prhs[2]);
/* create the output scalar1 */
plhs[0] = mxCreateDoubleScalar(input1/input2);
/* get the value of the scalar output1 */
output1 = mxGetScalar(plhs[0]);
/* call the computational routines */
arrayquotient(input1,input2,output1);
}
mex ファイルが存在することを確認するために、パス (コマンド add path) を追加しましたamortiss.c
。arrayquotient.m
次に、関数の宣言を 記述した .m ファイルを作成しました。
function c = arrayquotient(a,b)
ただし、コンパイル時に別のエラー メッセージが表示されます。
Error in ==> arrayquotient at 1
function c=arrayquotient(a,b)
??? Output argument "c" (and maybe others) not assigned during call to
"C:\Users\hp\Documents\MATLAB\codes_Rihab\arrayquotient.m>arrayquotient".