matlabでc言語を呼び出す
991 ワード
次にmatlabがmexを用いてc言語を呼び出す例を示す.
m-code: xbinary_create.m
C-mex code: xbinary_read.c
Sample run:
以上、matlabはc言語を使用しています.
m-code: xbinary_create.m
x = 1:5;
fid = fopen('xbinary.bin','w');
fwrite(fid, x, 'double');
fclose(fid);
C-mex code: xbinary_read.c
#include "mex.h"
#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
Sample run:
>> mex xbinary_read.c
>> xbinary_create
>> xbinary_read('xbinary.bin',5)
1
2
3
4
5
以上、matlabはc言語を使用しています.