欢迎来到天天文库
浏览记录
ID:34451168
大小:341.24 KB
页数:4页
时间:2019-03-06
《matlab与c语言程序的应用编程接口new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据科技信息OIT论坛0SCIENCE&TECHNOLOGYINFORMATION2009年第33期Matlab与C语言程序的应用编程接口程建廖正和(安徽理工大学计算机学院安徽淮南232001)【摘要】针对MATLAB与C语言混合编程的接口问题,提出了采用MAT文件、MEX文件和MATLAB引擎三种接口方法。通过MAT文件实现与其它编程环境的数据交换;通过MEX文件实现在MATLAB环境中调用其它语言编写的程序;通过MATLAB引擎实现在其它编程环境中使用MATLAB的计算功能。在详细阐述了三种方法原理的过程中,说明了三种接口方法的使用特点、调用方法、编译
2、过程和使用中的注意事项。通过混合编程,利用了C语言高效的特点,在发挥MATLAB强大的计算功能的同时,又弥补其执行速度慢的缺点。【关键词】MATLAB;c语言;MAT文件;MEX文件;计算引擎MATLAB是一种以矩阵为基本数据对象的科学计算语言。它提供了功能齐全的函数库和各种工具箱,具有强大的矩阵分析、数值计算、图形绘制等功能,在很多领域得到了广泛的应用。MATLAB的功能强大,开发效率也很高,但缺点是执行速度比较慢。C语言功能丰富,使用灵活方便。目标程序效率高,是目前应用最广的编程语言。MATLAB用M语言编程。不能在M文件中直接调用C语言程序。MATLAB
3、提供应用编程接口(API)来实现与其它应用程序进行数据交换并提供了C,C++、FORTRAN数学和图形函数库为在其它程序设计语言中调用MAⅡAB高效算法提供了可能。MATLAB的应用程序接口主要方法有三种:通过MAT文件实现与其它编程环境的数据交换;通过MEX文件实现在MATLAB环境中调用其它语言编写的程序:通过MATLAB引擎实现在其它编程环境中使用MAlrIAB的计算功能。1.MAT文件MAT文件是MATIAB使用的一种特有的二进制数据文件。MAT文件可以包含一个或者多个MA’ItAB变量。在MAT文件中不仅保存各变量数据本身,而且同时保存变量名以及数据
4、类型等。所以在MATLAB中载人某个MAT文件后.可以在当前MA,11AB工作空间完全再现当初保存该MAT文件时的那些变量。这是其他文件格式所不能的。同样,用户也可以使用MAT文件从MATLAB环境中导出数据。MAT文件提供了一种更简便的机制在不同操作平台之间移动MATLAB数据。C/C++程序中有两种方式可以读取MAT文件数据。一种是利用MATLAB提供的有关MAT文件的编程接口函数。MATLAB的库函数中包含了MAT文件接口函数库,其中有各种对MAT文件进行读写的函数,都是以mat开头的函数。另外一种在C/C++程序中读写MAT文件的方法是根据MAT文件结
5、构,以二进制格式在C/C++中读入文件内容,然后解析文件内容,从而获得文件中保存的MATLAB数据。因为MAT文件格式是公开的.用户只要在找到安装路径下的一个名为matfile_format.pdf的文件.就可以详细了解MAT文件结构,从而在C/C++程序中以二进制格式读取文件内容,解析以后得到文件中保存的数据。2.C语言的ME×文件MEX文件是一种动态连接子程序,可以像调用M文件一样调用C语言写的程序。2.1MEX文件主要有以下几方面的应用:(1)在MATLAB中.M文件的计算速度特别是循环迭代的速度远比C语言慢,因此可以把要求大量循环迭代的部分用C语言编写
6、为MEX文件,提高计算速度。(2)已经开发的C语言程序,通过添加入El程序mexFunction,可以由MATLAB调用,而不必重新编写相应的M文件。(3)直接控制硬件,如A/D采集卡,D/A输出卡等,以用于数据采集或控制应用。2.2C语言的MEX文件的源程序由两个部分组成:(1)人口子程序mexFunction。其作用是在MATLAB系统与被调用的外部子程序间建立通信联系。函数中有四个参数nlhs、plhs、nrhs和prhs。函数原型如下:voidmexFunction(intnlhs,mxArray。plhs[],intnrhs,mxArray4prhs
7、【】)这里nlhs是输出数据的个数.plhs是指向mxArray(MATLAB中所有数据都由mxArray定义)的输出数据的指针.nrhs是输人数据的个数,prhs是指向mxArray的输入数据的指针。(2)计算子程序。包含MEX文件中完成计算功能的程序代码,计算子程序可以是普通的C语言程序.按照C语言规则编写即可。计算子程序由入口子程序调用。图1显示了如何向MEX文件输入数据,通过接口函数调用计算程序完成运算过程,最后向MATLAB返回计算结果的过程。图1MEX文件的调用关系上面所述的MEX文件的两个主要部分在使用中可以是独立的,也可以是组合在一起的。不管是
8、哪一种情况,MEX文件都必须包含头文件
此文档下载收益归作者所有