MATLAB与C混合编程

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)





你可能感兴趣的:(MATLAB与C混合编程)