Matlab与C混合编程汇总.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:11 大小:134KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Matlab与C混合编程汇总.pdf

Matlab与C混合编程汇总.pdf

预览

免费试读已结束,剩余 1 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

add.cmex编译://///////////////////////////////////////////////////////////////}c);add(b,=*a*(mxGetPr(prhs[1]));=c*(mxGetPr(prhs[0]));=b=amxGetPr(plhs[0]);mxREAL);1,mxCreateDoubleMatrix(1,=plhs[0]c;b,doubledouble*a;{*prhs[])mxArraynrhs,constint*plhs[],nlhs,mxArrayintmexFunction(voidMEX//文件接口函数}y;+xreturn{y)doublex,doubleadd(doubleC//函数执行具体工作的MEX//"mex.h"#include文件必须包含的头文件使用"add.h"#includeadd.c//如下:完整的MEX程序:改写后的/////////////////////////////////////////////////////////////////}y;+xreturn{y)intx,intadd(int"add.h"#include//add.c#endifC//y);intx,intadd(int"C"extern编译、连接方式的外部函数声明为LIB_H#defineLIB_H#ifndefadd.h//C程序:原/////////////////////////////////////////////////////////////////LCCLCCMatlabMatlabMEXMEXLCCMatlabMEX1)1)LCCMatlabMEX1)1)不支持中文注释)自带的方法(注:CCMatlabMatlab1.1.CMatlab1.CMatlab1.调用MatlabCMatlabCMatlabCMatlabC与混合编程汇总2)DLL方法(C生成)/////////////////////////////////////////////////////////////////打开Vs2010,文件->新建->项目->Win32项目->应用程序类型选择DLL,输入以下代码://add.h#ifndefLIB_H#defineLIB_Hextern"C"int__declspec(dllexport)add(intx,inty);#endif//add.c#include"add.h"intadd(intx,inty){returnx+y;}/////////////////////////////////////////////////////////////////%Matlab调用DLL%用loadlibrary函数,根据add.h中的函数定义,加载add.dllloadlibrary('add.dll','add.h');%查看add.dll支持的函数接口libfunctionsadd-full%int32add(int32,int32)out=calllib('add','add',23,32);unloadlibrary('add')2C调用Matlab1)DLL方法(Matlab生成)/////////////////////////////////////////////////////////////////functionout=add(x,y)out=x+y;将M文件编译成DLL:mcc-Wlib:add-Tlink:libadd.m用Matlab调用DLL查看函数loadlibrary('add.dll','add.h');%查看add.dll支持的函数接口libfunctionsadd-full/////////////////////////////////////////////////////////////////将生成的add.h、add.dll、add.lib等拷入项目所在文件夹,并设置VS2010编译器:a)项目->属性->C/C