您的位置:首页 > 编程语言 > MATLAB

MATLAB与C混合编程

2016-03-18 21:55 477 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: