第章应用程序接口.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第20章 应用程序接口 作为一款优秀的工程计算软件,MATLAB不仅拥有强大的功能和友好的界面支持,还具有很好的开放性、可扩展性,主要表现在:丰富的工具箱(Toolbox)资源可以适应各学科、各领域的需要,并且用户可以创建自己的工具箱;广泛的应用程序接口(API),能够与外部应用程序实现 “无缝”结合等。 本章针对MATLAB的C、FORTRN应用程序接口,主要介绍以下几方面内容: C/FORTRAN语言中的MATLAB数据结构mxArray; MATLAB利用MEX文件调用C/FORTRAN函数; C/FORTRAN通过MATLAB引擎(Engine)调用MATLAB函数; 创建能够读写MAT文件的C程序,实现C与MATLAB的数据通信。 20.1 mxArray数据结构 数组是MATLAB程序基本的数据组织形式,也是大部分MATLAB运算的基本运算单位。MATLAB中数组与C/FORTRAN中数组的存储方式是不同的,而且MATLAB和C/FORTRAN对基本数据类型,如双精度类型浮点数、整数类型、字符类型等的定义也是不同的。为了能够在C中表示MATLAB数据结构,MATLAB提供了一种特殊的C语言结构——mxArray。本节首先简要介绍MATLAB和C/FORTRAN中数组存储方式的不同,然后详细讨论mxArray数据结构及相关的操作函数——mx函数。 20.1.1 MATLAB和C/FORTRAN中的数组 数组是MATLAB数据组织的基本形式,这里首先要澄清两个概念,即数据类型和数据结构。MATLAB的数据类型,诸如整型、浮点型、逻辑型等都是数值类型;另外还有字符、字符串、对象等非数值类型。数据结构是指数据元素的组织方式,基本的有数组,另外还有元胞、构架等复杂数据结构,每个数据元素都有对应的数据类型。 MATLAB按列主序组织数组中的数据元素,例如对一个3阶魔术矩阵A,在MATLAB命令窗口输入以下代码。 a=magic(3) 运行结果如下。 a = 8 1 6 3 5 7 4 9 2 20.1.2 mxArray mxArray是一种C语言结构体,该结构体的定义在Matrix.h中,下面列出了mxArray定义相关的代码: mxArray结构体由很多字段组成,这些字段保存了MATLAB数据的所有信息: 数据类型; 数组维数; 数组大小,行数、列数; 数据主体; 如果是数值对象,则保存数据是实数还是复数; 如果是稀疏矩阵,则保存矩阵中非零元素的个数和索引。 20.1.3 mx函数 为了方便mxArray数据对象的操作,MATLAB专门提供了一组mxArray数据操作函数,即mx函数。利用mx函数可以创建和访问mxArray数据对象,本小节首先介绍几类主要mxArray数据对象的创建,其间会涉及相应mxArray数据对象的访问和赋值操作,随后讨论了mxArray数据对象相关的内存操作。 下面对两类常用的mxArray数据对象的创建及相关的访问、赋值操作进行详细介绍,这两类mxArray数据对象是: 数值数组; 逻辑数组。 20.2 C/FORTRAN MEX C/FORTRAN语言应用于工程、科学等领域具有较长的历史,积累了大量可用的代码,通过MEX文件,可以直接将这些已有的C/FORTRAN代码集成到MATLAB应用中,而且能够弥补MATLAB本身的一些不足,如对计算机低层硬件的操作、网络操作等。 本节首先简要介绍C MEX文件的结构,为了创建C MEX文件,需要对MATLAB 编译器作相关的设置——MEX配置,20.2.3和20.2.4分别以示例的形式讨论了C MEX和FORTRAN MEX的创建方法。 注意:MEX是MATLAB Compiler 3等早期MATLAB编译器的功能,MATLAB 7.0的编译器(MATLAB Compiler 4)已不能支持MEX文件。 20.2.1 MEX文件简介 MEX即为MATLAB和Executable的缩写,一般地,MEX文件由C语言或FORTRAN语言开发,经过编译后可以被MATLAB直接调用。在使用上MEX文件与M文件相似,但比M文件具有更高的执行优先级。利用MEX文件,用户可以完成: 在MATLAB直接使用已有的C/FORTRAN代码; 隐藏算法的细节; 利用C语言对低层硬件进行操作,扩展MATLAB的能力。 20.2.2 配置MEX MEX文件一般由C/FORTRAN语言开发,然后利用MATLAB Compiler将C/FORTRAN源代码编译为MEX文件。为此需要对MATLAB Compiler作相应的配置,配置过程与本书第19章的mbuild配置相似,即是选择合适的C/

文档评论(0)

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

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

1亿VIP精品文档

相关文档