欢迎来到天天文库
浏览记录
ID:27724466
大小:1.05 MB
页数:47页
时间:2018-12-04
《[计算机软件及应用]matlab5_程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五讲Matlab程序设计(2)通信与信息工程学院2012~2013学年冬季学期10/6/20211MATLAB作为一种高级语言,它不仅能以一种人机交互式的命令行的方式工作,还可以像BASIC、FORTRAN、C等其他高级计算机语言一样进行控制流的程序设计,即编制一种以.m为扩展名的MATLAB程序(简称M文件)。10/6/20212Matlab语言的开放性:Matlab适应各学科、专业研究的需要,提供了各种专业的工具箱。Matlab为实现与外部应用程序的“无缝”结合,提供了专门的应用程序接口API。七、应用程序接口API1
2、0/6/20213Matlab外部接口主要包括:MEX文件,外部程序调用接口;MAT文件,应用程序,数据输入输出接口;Matlab计算引擎函数库;Matlab与其它开发平台的接口,VisualC++、VisualBasic、Delphi、Powerpoint等等。10/6/20214MEX文件可应用于以下场合:已经存在的较大规模的C或Fortran程序可以比较容易的在matlab中加以调用,而无需重写成M文件。在matlab中运行不很有效的计算瓶颈(一般出现在不可避免的循环时),可以用C或Fortran重新编写后构成MEX文
3、件解决。直接面向硬件编写的C或Fortran程序可以通过MEX被matlab调用。1、MEX文件10/6/20215MEX文件是一种可在matlab中调用的C或Fortran语言的衍生程序,MEX文件的源码文件是由C或Fortran语言编写的。MEX文件经matlab编译器处理而生成二进制文件,可以被matlab解释器自动装载并执行的动态链接程序。这种文件在windows操作系统中使用后缀*.DLL。MEX文件使用极为方便,其调用方式与matlab内建函数完全相同,在命令窗口键入>>MEX文件名。MEX文件的执行优先级高于M
4、文件。MEX文件10/6/20216MEX文件的编译系统配置完成后,就可以使用命令对文件进行编译了。MEXfilenames同时Matlab系统为mex提供了参数,通过该命令参数可以让用户使用不同的选项文件对源文件进行编译,命令格式如下:Mexoptionsfilenames使用helpmex查看。10/6/20217helpmexMEXCompileMEX-function.MEX[option1...optionN]sourcefile1[...sourcefileN][objectfile1...objectfileN
5、][libraryfile1...libraryfileN]Description:MEXcompilesandlinkssourcefilesintoasharedlibrarycalledaMEX-file,executablefromwithinMATLAB.Theresultingfilehasaplatform-dependentextension,asshowninthetablebelow:solaris-.mexsolhpux-.mexhpuxglnx86-.mexglxglnxi64-.mexi64MacO
6、SX-.mexmacWindows-.dll10/6/202182、CMEX文件源程序的构成一般形式的C源码程序不能直接被编译成在matlab中可以调用的MEX文件,只有按约定格式编写的C源码文件才能转化为有效的MEX文件。C语言MEX文件必须以#include“mex.h”为起首。C语言MEX文件一般有如下两个相对独立的子程序组成:“计算子程序”用于完成所需的计算;“接口子程序”是计算子程序和matlab空间的接口,用于两个不同内存空间的通信。“计算子程序”和“接口子程序”相对独立,它们可以分成两个程序,也可以共写在同一个
7、程序中。10/6/20219列出具有实现两个双精度实数标量加法的C++MEX源码程序;对C++MEX源码程序进行编译链接;在MATLAB中调用生成的DLL文件。“计算子程序”#include"mex.h"voidmyplus(doubley[],doublex[],doublez[]){y[0]=x[0]+z[0];}10/6/202110“接口子程序”voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*x,*y,*z;intm
8、rows0,ncols0;intmrows1,ncols1;……………}10/6/202111mexexm.cppa=0.111;b=0.222;c=exm(a,b)c=0.333010/6/2021123、matlab引擎技术Matlab引擎库函数可使用户在自编的应用程序中方便地实现对m
此文档下载收益归作者所有