MEX从字面上是MATLAB和Executable 两个单词的缩写。
MEX文件是一种可在matlab环境中调用的C语言(或fortran)衍生程序,mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件。
MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
MEX的编写
mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件,所以写MEX程序其实就是写一个DLL程序。编写MEX程序的编辑器可以使用MATLAB的代码编辑器,也可使用自己的C++编辑器,如VS2008等。
.m文件是保存一段代码的文件,类似于c语言中的一个函数体;这也是matlab中最常见的文件保存格式之一
.mex文件是一种“可在matlab环境中调用的c(或fortran)语言衍生程序”。也就是说,mex文件的源码文件是由c或fortran语言编写的,后经matlab编译器处理而生成的二进制文件;它可以被matlab解释器自动装载并执行的动态链接程序,这种文件在windows下是ddl文件。
.mat是matlab的数据存储的标准格式。也就是你 *** 作产生的数据的一个集合包,可以把一次处理的结果保存,供下一次使用。
你可以调用matlab的子程序库,用c或fortan调用mat格式的数据。
有几种方法可以打开
1.matlab中可以用load命令读取.mat文件
2.c语言中有api读取.mat文件,如matopen,
matclose等等
3.用记事本就可以打开.mat文件,.mat文件格式是公开的,你可以自己解析里面的内容
mexw32是matlab中的M文件经过编译生成的mex文件,mex文件的后缀名按32位/64位分别为 .mexw32/.mexw64。
mex文件是由C或Fortran语言编写的源代码,经matlab编译器处理而生成的二进制文件。它是可以被matlab解释器自动装载并执行的动态链接程序,类似windows下的dll文件。
mex文件的编写
mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件,所以写mex程序其实就是写一个DLL程序。编写mex程序的编辑器可以使用matlab的代码编辑器,也可使用自己的C++编辑器,如VS2008等。一般格式如下:
#include "mex.h"
void mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
{
.......
}
四个参数分别用来输出和输入数据:
nlhs 输出参数个数,plhs 输出参数指针(nrhs和prhs是输入参数相关的)。
注意: 对输出和输入参数的 *** 作都是通过指针的方式进行的。
mex文件的编译
将m文件编译成mex文件,可以提高代码的运行速度,隐藏源代码,既能提高程序的执行速度,同时也能保护原作者的劳动成果不被窃取。
mex文件的调用
其调用方式与C语言中函数的调用方式是一样的,即:
返回值 = 函数名(参数列表)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)