matlab 2012a
相关matlab地址
* matlab/extern/examples
* matlab/extern/include
mex -setup
编写程序test.c
#include "mex.h"
void name(double matrix_ptr[], double a_ptr[], double b_ptr[]);
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *matrix_ptr;
double *a_ptr, *b_ptr;
if(nlhs > 1)
{
mexErrMsgTxt("Too many output arguments.");
}
if(nrhs != 2)
{
mexErrMsgTxt("Must have two input arguments.");
}
plhs[0] = mxCreateDoubleMatrix(2, 2, mxREAL);
matrix_ptr = mxGetPr(plhs[0]);
a_ptr = mxGetPr(prhs[0]);
b_ptr = mxGetPr(prhs[1]);
name(matrix_ptr, a_ptr, b_ptr);
}
void name(double matrix_ptr[], double a_ptr[], double b_ptr[])
{
double a = a_ptr[0];
double b = b_ptr[0];
matrix_ptr[0] = a + b;
matrix_ptr[1] = a - b;
matrix_ptr[2] = a * b;
matrix_ptr[3] = a / b;
}
注: mexFunction函数是必须的,name函数是自定义的
mex test.c
执行test(3,4),观察结果