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)
方法:在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)
相关文章推荐
- GMM的EM算法实现
- 【Matlab】图像裁剪函数imcrop的原点、长度、宽度问题
- 【Matlab】函数imread的返回值
- 【matlab】:matlab如何实现切分图片并保存?
- Matlab从图像中选取矩形区域
- 数据挖掘-全面的MAC上matlab安装libsvm
- Matlab中K-means聚类算法的使用(K-均值聚类)
- 【MATLAB】用MATLAB绘制奥运五环
- 【MATLAB】用MATLAB绘制奥运五环
- 利用cuda加速MATLAB程序
- MATLAB读写Excel
- Matlab读取CSV文件
- 数据挖掘-SVM(支持向量机)的matlab基础DEMO详细注解
- matlab基础语法笔记(二)
- Matlab的regionprops详解
- kd树简介 在matlab下VLFeat中的kd-tree使用
- 局部敏感哈希matlab代码解读
- matlab粒子群算法结合模糊聚类分割算法实现图像的分割
- python调用MATLAB
- Python 调用Matlab的函数或者调用M文件方法