欢迎来到天天文库
浏览记录
ID:35515084
大小:94.50 KB
页数:7页
时间:2019-03-25
《matlab外部程序接口技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十一章MATLAB外部程序接口技术11.1M编译器的功用和前提准备11.2创建MEX文件11.2.1MEX文件编译的验证【例11.2-1】验证mex应用程序把C码文件编译成MEX文件的正确性。(1)先将matlabexternexamplesmex目录下的yprime.c文件复制到用户自己的工作目录(比方d:mywork),然后将此文件名改为my_yprime.c。(2)运行以下指令cdd:myworkmexmy_yprime.cmy_yprime(1,1:4)whichmy_ypr
2、imeans=2.00008.96854.0000-1.0947d:myworkmy_yprime.dll〖说明〗l应该指出:mex的编译操作也可以象图11.2-1那样在DOS环境中进行,结果相同。图11.2-1在DOS状态下进行编译操作【例11.2-2】验证mcc应用程序把M码文件编译成MEX文件的正确性。(1)先将matlabexternexamplesmex目录下的yprime.m文件复制到用户自己的工作目录(比方d:mywork),然后将此文件名改为my_yprime_m.m
3、。(2)运行以下指令cdd:mywork%把用户目录指定为当前目录mcc-xmy_yprime_mmy_yprime_m(1,1:4)whichmy_yprime_mans=2.00008.96854.0000-1.0947d:myworkmy_yprime_m.dll711.1.1由M文件创建CMEX文件的算例【例11.2-3】先编写一个“判断方阵是否奇异”的M文件,然后由该M文件生成相应的MEX文件。(1)在MATLAB的编辑器中,编写下面的函数文件exm1.m。[exm1.m]fun
4、ctiony=exm1(A)[m,n]=size(A);ifm~=n;error('Aninputmatrixshouldben-by-n.')endr=rank(A);ifr==mdisp('Thismatrixisnonsigular')elsedisp('Thismatrixissigular')end(2)把该函数文件存放于用户目录d:mywork下。(3)在MATLAB命令窗中,运行以下指令对exm1.m进行编译。mcc-xexm1%编译m文件。(4)调用MEX文件exm1.dll进
5、行计算A=[1,0,1;2,1,0;4,1,4]exm1(A)whichexm1A=101210414Thismatrixisnonsigulard:myworkexm1.dll【例11.2-4】产生一个绘圆的MEX文件。本例演示:(A)M脚本文件不能被编译;(B)如何把脚本文件改写成函数文件;(C)改写后的M函数文件可被正确编译。(1)原始的绘圆脚本文件[circle.m]clf;r=2;t=0:pi/100:2*pi;x=r*exp(i*t);plot(x,'r*');axis('squ
6、are')(2)对该脚本文件直接编译将因错误而失败mcc-xcircle???Error:File"circle"isaScriptM-fileandcannotbecompiledwiththecurrentCompiler.Errorin==>H:MATLAB53toolboxcompilermcc.dll(3)把脚本文件改写成函数文件[circle_f.m]:functioncircle_f(r)clf;t=0:pi/100:2*pi;x=r*exp(i*t);plot(x,'r*
7、');axis('square')7(4)再对circle_f.m进行编译,将顺利通过mcc-xcircle_f(5)运行生成的MEX文件circle_f.dllcircle_f(0.5)whichcircle_fd:myworkcircle_f.dll图11.2-2MEX文件circle_f.dll所画的圆11.1创建独立的外部应用程序11.1.1M编译器的预配置一对M编译器mbuild应用程序的设置二配置正确性的验证【例11.3-1】验证mbuild应用程序把C码文件编译成EXE文件的正
8、确性。(1)先将matlabexternexamplescmath目录下的ex1.c文件复制到用户自己的工作目录(比方d:mywork),然后将此文件名改为my_ex1.c。(2)在MATLAB指令窗中运行以下指令,将在d:mywork目录下产生my_ex1.exe。cdd:myworkmbuildmy_ex1.c(3)打开Windows的DOS窗口,并使d:mywork成为当前目录,运行my_ex1.exe,若得到结果与图11.3-1相同,就表示mbuild应用程序工作正常。7图
此文档下载收益归作者所有