欢迎来到天天文库
浏览记录
ID:46949698
大小:2.48 MB
页数:38页
时间:2019-12-01
《《MATLAB高级应用》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、8.1MATLAB应用接口8.2低级文件输入/输出8.3Notebook8.1.1MEX文件²1.MEX文件系统设置下面采用MicrosoftVisualC/C++6.0编译器,在命令窗口使用“mex-setup”命令,对MEX文件编译器进行配置,使MATLAB系统知道使用哪一个编译器及编译器的参数,并一步一步进行配置。>>mex-setup则会出现如下提示。Pleasechooseyourcompilerforbuildingexternalinterface(MEX)files:Wouldyoulikemextolocateinstalledcompilers[y]/n?y允许用户选择
2、是否同意mex命令自动定位已经安装的编译器,输入“y”后,按回车键后出现如下提示。Selectacompiler:[1]Lcc-win32C2.4.1inC:PROGRA~1MATLABR2010asyslcc[0]None提供用户选择编译器作为默认的MEX文件编译器,通过键盘输入“1”后,按回车键后出现如下提示。Pleaseverifyyourchoices:Compiler:Lcc-win32C2.4.1Location:C:PROGRA~1MATLABR2010asyslccArethesecorrect[y]/n?yTryingtoupdateoptionsfi
3、le:C:UsersCAOYIAppDataRoamingMathWorksMATLABR2010amexopts.batFromtemplate:C:PROGRA~1MATLABR2010abinwin32mexoptslccopts.batDone...²2.C语言MEX文件的构成C语言MEX文件具有特定的结构,下面通过查看“yprime.c”体现C语言MEX文件的基本框架,文件内容。(1)入口子程序。程序的第1部分入口子程序的作用是在MATLAB系统与被调用的外部子程序之间建立通信联系。子程序分别定义了被MATLAB调用的外部子程序的入口地址,MATLA
4、B系统向子程序传递的子程序参数,子程序向MATLAB系统返回的结果参数,以及调用计算功能子程序等。入口子程序必须是mexFunction,其构成形式为:voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){/*用来完成MATLAB与计算子程序之间通信任务的代码*/}(2)计算功能子程序。程序的第2部分为计算功能子程序,包含所有实际需要完成的功能源代码,可以是用户以前所编写的算法和程序,以函数的形式存在,如上例中的“yprime”函数就是计算功能子程序。如果用户要将以前的程序和算法移植到MATLAB环境中使用,
5、则必须将其表示为函数形式。²3.C语言MEX文件的建立(1)常用MATLABAPI函数。在MEX文件中,常用MATLABAPI函数有如下几种。①mxGetM:获得矩阵的行数。②mxGetN:获得矩阵的列数。③mxGetPr:获得矩阵的实数部分的数据指针。④mexErrMsgTxt:输出错误信息,并返回到MATLAB命令提示符下。⑤mxCreateString:创建1个字符串矩阵。⑥mxCreateDoubleMatrix:创建1个二维未赋值的双精度浮点类型的矩阵。⑦mxIsDouble:判断矩阵是否为双精度类型。(2)C语言MEX文件的创建。通过创建计算1个数的平方的倒数程序介绍1个MEX
6、文件创建的过程。【例8.1】在MicrosoftVisualC++6.0环境下创建1个MEX文件,实现计算1个数的平方的倒数。①在MicrosoftVisualC++6.0环境下创建1个“C++SourceFile”文件,文件名为“Ex0801.cpp”。②编写该文件的程序代码。③在MATLAB命令窗口的当前目录浏览器中将当前目录设置为用户的目录,输入命令创建MEX文件并运行。>>mexEx0801.cpp>>y=Ex0801(2)y=0.2500④为该文件添加帮助M文件。为了在MATLAB中方便地查看该Ex0801.dll文件的帮助信息,可以建立1个Ex0801.M文件,并输入以下内容。
7、%functiony=Ex0801(x)%计算一个数的平方的倒数%y=1/(x^2)%copyright@2007510在MATLAB命令窗口中,用help命令只能看到M文件查看帮助信息。>>helpEx0801functiony=Ex0801(x)计算1个数的平方的倒数y=1/(x^2)copyright@2007510【例8.2】在MATLAB环境中创建1个M函数文件,用来绘制正弦信号波形。在MATLAB的编
此文档下载收益归作者所有