1、Matlab中安装Mex工具。
方法:在Matlab中执行mex -setup命令,在提示下选择编译器,并设置编译器(在提示信息中选择)即可。
2、在Microsoft VC++ 6.0中设置环境变量。
方法:工具——>选项——>目录
在Include files中加入以下路径:C:\Program Files\MATLAB\R2014a\extern\include
在Library files中加入以下路径:C:\Program Files\MATLAB\R2014a\extern\lib\win32\microsoft
3、建立mexAdd项目,编写mexAdd函数,具体程序如下:
#include<iostream> #include "mex.h"//添加头文件mex.h using namespace std; double add(double x,double y) { return x+y; } //添加接口函数mexFunction() //nlhs:number of left hand size parameters,即Matlab调用语句左边的变量的个数,实际就是需要返回给Matlab的返回值变量有多少个。 //plhs:pointer of left hand size parameters,即函数返回参数的指针。但它是一个指针数组,每个元素是个指针,每个指针指向一个数据类型为mxArray的返回参数。 //nrhs:number of right hand size parameters,即Matlab调用语句右边的变量个数。 //prhs:pointer of right hand size parameters,即Matlab右边参数的指针数组。 void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) { double *a; double b,c; plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL); a=mxGetPr(plhs[0]); b=*(mxGetPr(prhs[0])); c=*(mxGetPr(prhs[1])); *a=add(b,c); }
4、在Microsoft VC++ 6.0中对编写的程序进行编译,编译通过即可。
5、Matlab中编译写好的.cpp文件。
方法:切换打到mexAdd工程项目目录下,在Matlab中输入mex mexAdd.cpp即可。
6、Matlab调用Micros VC++ 6.0编写的接口函数。
7、方法:mexAdd(0.3,0.2)