MATLAB混合编程84887.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB应用程序接口 MATLAB 混合编程的3个例子 1.MAT文件的读写 2.C语言调用MATLAB编译器生成的DLL模块 3.Matlab调用C语言编写的MEX文件 MAT文件的读写 MAT文件由128bytes MAT 文件头和尾随其后的数据单元组成,每个数据单元头部都有一个8字节的标志,表示这个数据单元里有多少数据,以及以什么方式读写这里的数据。一般读写方式有16位、32位、浮点或别的形式。MAT文件的结构如右图 MAT文件的读写 MATLAB 提供的用于操作 MAT 文件的 API 函数封装于两个标准库文件中:libmat.lib 和 libmx.lib。 前者用于对MAT文件的操作,后者用于对MAT文件中矩阵的操作。这两个库文件对 于不同语言和不同版本的编辑器而有所不同,存放在MATLAB\bin\win32相应子文件夹中。此外,在MATLAB\extern\include 中有与前面两个标准库文件对应的.def 文件:libmat.def、libmx.def。 其导出函数的原型位于同一目录下的 mat.h和 matrix.h中,mat.h包含了 MAT文件的创建、 读写等函数的定义; matrix.h包含了MATLAB中基本的数据类型、 矩阵的定义和操作方法。 MAT文件的读写 一个实例小程序,用于将BCI脑电数据CNT格式转变为MAT格式数据 C语言调用MATLAB编译器生成的DLL模块 09年脑电麻醉深度检测项目 C语言调用MATLAB编译器生成的DLL模块 09年脑电麻醉深度检测项目流程图: 信号处理模块:function ADep=AD(EEG,SampleRate) C语言调用MATLAB编译器生成的DLL模块 VC编写的界面调用MATLAB编写的函数function ADep=AD(EEG,SampleRate) C语言调用MATLAB编译器生成的DLL模块 MATLAB编译器的配置 C语言调用MATLAB编译器生成的DLL模块 MATLAB编译器MCC 编译一个C动态库 C语言调用MATLAB编译器生成的DLL模块 MATLAB编译器MCC 编译一个C++动态库 mcc -B cpplib:DatComp DatProcess.m C语言调用MATLAB编译器生成的DLL模块 MATLAB编译器MCC 编译一个C++动态库 mcc -B cpplib:DatComp DatProcess.m 补充:函数库的简介 对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file) (完整复制或提供地址) (1).h与.lib是必须的,dll是运行时需要的。 (2)静态库 只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。 (3)动态库 有两个文件,一个是引入库(.LIB)文件,一个是DLL文件。 引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。 C语言调用MATLAB编译器生成的DLL模块 对 CB的编译器环境进行设置。 在Project-options-directory里面设置include和lib的路径,源代码中加入头文件 Datcomp.h,项目中加入 libmat.lib libmx.lib mclmcrrt.lib 以及 MCC生成的Datcomp.lib C语言调用MATLAB编译器生成的DLL模块 对 VC的编译器环境进行设置。 在Tool-options-directory里面设置include和lib的路径,项目中加入 libmat.lib libmx.lib mclmcrrt.lib 以及 MCC生成的Datcomp.lib C语言调用MATLAB编译器生成的DLL模块 Matlab调用C语言编写的MEX文件 Matlab生成MEX文件: mex –setup mex getname.c 生成文件后缀:*.mexw32 MATLAB 混合编程的注意事项 选择合适的MATLAB版本——CB 推荐 matlab 2007B MATLAB 混合编程的注意事项 C语言中使用这种调用形式最好 try { …MRC_FUNCTION()… } catch (cons

文档评论(0)

dreamclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档