用C语言编写MEX文件的源代码时,必须要有mexFunction函数。mexFunction函数的作用与一般C语言程序设计中的main函数的功能类似。如果说main函数提供的是操作系统与C语言子程序之间的接口,那么mexFunction函数的作用则是Matlab与C语言子程序之间的接口。另外,用C语言编写MEX文件源代码时,需要包含“mex.h”头文件:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray * prhs[]);
其中,mexFunction函数的输入/输出参数含义如下表:
参数名 | 含义 | 参数名 | 含义 |
int nlhs | 输出参数的个数 | int nrhs | 输入参数的个数 |
mxArray *plhs | 输出参数的mxArray数组 | mxArray *prhs | 输入参数的mxArray数组 |
在Matlab中,所有的数据类型都是用mxArray结构来表示。通过接口函数mexFunction,可以与Matlab环境进行数据交换。Matlab与mexFunction数据交互的过程可以用下图来表示。
文章参考自《精通Matlab与C/C++混合程序设计-第二版》