预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

add.cmex 编译: ///////////////////////////////////////////////////////////////// } c);add(b,= *a *(mxGetPr(prhs[1]));=c *(mxGetPr(prhs[0]));=b =a mxGetPr(plhs[0]); mxREAL);1,mxCreateDoubleMatrix(1,=plhs[0] c;b,double double *a; { *prhs[])mxArraynrhs,constint*plhs[],nlhs,mxArrayintmexFunction(void MEX// 文件接口函数 } y;+xreturn { y)doublex,doubleadd(double C// 函数执行具体工作的 MEX//"mex.h"#include 文件必须包含的头文件使用 "add.h"#include add.c// 如下:完整的 MEX 程序:改写后的 ///////////////////////////////////////////////////////////////// } y;+xreturn { y)intx,intadd(int "add.h"#include //add.c #endif C//y);intx,intadd(int"C"extern 编译、连接方式的外部函数声明为 LIB_H#define LIB_H#ifndef add.h// C 程序:原 ///////////////////////////////////////////////////////////////// LCC LCCMatlab MatlabMEX MEX LCC Matlab MEX 1) 1) LCC Matlab MEX 1) 1) 不支持中文注释) 自带的 方法(注: C CMatlab Matlab1. 1. C Matlab 1. C Matlab 1. 调用 Matlab CMatlab C Matlab C Matlab C 与 混合编程汇总 2)DLL方法(C生成) ///////////////////////////////////////////////////////////////// 打开Vs2010,文件->新建->项目->Win32项目->应用程序类型选择DLL,输入以下代码: //add.h #ifndefLIB_H #defineLIB_H extern"C"int__declspec(dllexport)add(intx,inty); #endif //add.c #include"add.h" intadd(intx,inty) { returnx+y; } ///////////////////////////////////////////////////////////////// %Matlab调用DLL %用loadlibrary函数,根据add.h中的函数定义,加载add.dll loadlibrary('add.dll','add.h'); %查看add.dll支持的函数接口 libfunctionsadd-full %int32add(int32,int32) out=calllib('add','add',23,32); unloadlibrary('add') 2C调用Matlab 1)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