matlabcompiler与c语言混合编程

matlabcompiler与c语言混合编程

ID:8800590

大小:45.00 KB

页数:4页

时间:2018-04-08

matlabcompiler与c语言混合编程_第1页
matlabcompiler与c语言混合编程_第2页
matlabcompiler与c语言混合编程_第3页
matlabcompiler与c语言混合编程_第4页
资源描述:

《matlabcompiler与c语言混合编程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、matlabcompiler与c语言混合编程经过一个多月的努力,在老师的帮助和自己的琢磨之下,终于对vc与matlab的混合编程有所了解。且举一例。首先要在自己的matlab7.0上安装MEX和mBuilder,安装方法是在matlab命令窗口中输入mex-setup,按照一系列的步骤安装下去。然后再在命令窗口中输入mbuilder-setup,同样的方法就可以安装mbuilder。在matlab中打开一个空的m文件,向里面写下列代码,并将其保存为zhengtaifenbuhanshu.m:functiony=zhengtaifenbuhanshu(x,u,d)%x为变量,u为均值,

2、d为方差y=normcdf(x,u,d);我的目的是在c语言中可以调用matlab中的正态分布函数。这个函数有三个输入参数,一个输出参数。然后在matlab命令行中打入:mcc-lzhengtaifenbuhanshu.m-odllnormcdf。这样就生成c共享(动态)库文件。其中zhengtaifenbuhanshu.m是要编译的m文件,最后编译的名称为dllnormcdf。-o表示要编译成的名字,如果没有-o,则编译后生成的文件名是与第一个要编译的文件名一致,就是这里的zhengtaifenbuhanshu。上面命令的作用是将zhengtaifenbuhanshu.m函数生成名

3、字为dllnormcdf的c语言动态库。注意编译的路径,如果zhengtaifenbuhanshu是你放在一个matlab中work的一个包中,那么matlab主窗口上面的CurrentDirectory要选择好zhengtaifenbuhanshu.m这个m文件所在的地方。按回车编译成功后,你会在编译的文件夹(默认的是work中)中看到多了几个生成的文件:dllnormcdf.cdllnormcdf.ctfdllnormcdf.dlldllnormcdf.expdllnormcdf.exportsdllnormcdf.hdllnormcdf.libdllnormcdf_mcc_co

4、mponent_data.c在生成的文件中,dllnormcdf.h文件是编译结果函数库的函数声明头文件,而dllnormcdf.lib文件是最终用户在编译自己的可执行应用程序所必须的库文件,dllnormcdf.dll文件就是最终用户的可执行应用程序运行时所需要的动态库。dllnormcdf.ctf是压缩文件,内容包含了所有与执行应用程序相关的MATLAB文件,dllnormcdf_mcc_component_data.c是数据文件,它包含了路径信息、MCR信息以及密钥等,dllnormcdf.exports文件中包含了所有被编译函数的声明符号,这些函数的原型都包含在了头文件dll

5、normcdf.h中。在vc中新建一个工程,这里我是用c语言作为例子的。然后将在matlab中生成的所有文件dllnormcdf.c、dllnormcdf.ctf、dllnormcdf.dll、dllnormcdf.exp、dllnormcdf.exports、dllnormcdf.h、dllnormcdf.lib、dllnormcdf_mcc_component_data.c都拷贝到新建工程的文件夹中。点击vc窗口的FileView,然后右键点击HeaderFiles,选择AddFilestoFolder…,将刚才拷贝过去的头文件dllnormcdf.h选择后,按ok将其添加进去。

6、这样就看到HeaderFiles中多了一个头文件。双击头文件可以看到如下代码:#ifndef__dllnormcdf_h#define__dllnormcdf_h1#ifdefined(__cplusplus)&&!defined(mclmcr_h)&&defined(__linux__)#pragmaimplementation"mclmcr.h"#endif#include"mclmcr.h"#ifdef__cplusplusextern"C"{#endifexternbooldllnormcdfInitializeWithHandlers(mclOutputHandlerFcn

7、error_handler,mclOutputHandlerFcnprint_handler);externbooldllnormcdfInitialize(void);externvoiddllnormcdfTerminate(void);externvoidmlxZhengtaifenbuhanshu(intnlhs,mxArray*plhs[],intnrhs,mxArray*prhs[]);externvoidmlfZhengtaifenbuhan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。