下面是matlab使用mex调用c语言的例子。
m-code: xbinary_create.m
x = 1:5;
fid = fopen('','w');
fwrite(fid, x, 'double');
fclose(fid);
C-mex code: xbinary_read.c
#include ""
#include <>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
FILE *fp;
char *fname;
double d;
int i, n;
if( nrhs == 2 && mxIsChar(prhs[0]) && mxIsNumeric(prhs[1]) ) {
fname = mxArrayToString(prhs[0]);
fp = fopen(fname,"r");
mxFree(fname);
if( fp != NULL ) {
n = mxGetScalar(prhs[1]);
for( i=0; i<n; i++ ) {
fread( &d, sizeof(d), 1, fp );
mexPrintf("%g\n",d);
}
fclose (fp);
} else {
mexErrMsgTxt("Unable to open file");
}
}
}
Sample run:
>> mex xbinary_read.c
>> xbinary_create
>> xbinary_read('',5)
1
2
3
4
5
以上就是matlab使用c语言。