MATLAB Answers

[mexFunction in Matlab] printf() function in C code

3 ビュー (過去 30 日間)
shdotcom shdotcom
shdotcom shdotcom 2019 年 9 月 23 日
Answered: James Tursa 2019 年 9 月 23 日
If I have a C code that consists of three files, Afun.c, Bfun.c and Cfun.c
int Afun (int argc, char *argv[]){)
{
Bfun();
// ....
int aa = 5;
return aa;
}
void Bfun (void)
{
Cfun();
}
void Cfun (void)
{
printf ( "\n This is C function\n");
}
In the mexFunction in Matlab, how can I show the output of printf() of Cfun()? where Afun() is the main function in C code.
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int argc = 0;
char **argv;
int i; result
argc = nrhs;
argv = (char **) mxCalloc( argc, sizeof(char *) );
for (i = 0; i < nrhs; i++){
argv[i] = mxArrayToString( prhs[i] );
}
// .....
result = Afun(argc, argv);
plhs[0] = mxCreateDoubleScalar(result);
}

  0 件のコメント

サインイン to comment.

件の回答 (1)

James Tursa
James Tursa 2019 年 9 月 23 日
How you have it written should work, except maybe replace printf( ) with mexPrintf( ). Also, depending on your compiler and settings, you may need to move the Bfun( ) call after the int aa definition. Are you having problems with this not displaying anything?

  0 件のコメント

サインイン to comment.

サインイン してこの質問に回答します。

製品


リリース

R2018b

Translated by