matlabでc言語を呼び出す

991 ワード

次にmatlabがmexを用いて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言語を使用しています.