《MATLAB外部程序接口技术.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《MATLAB外部程序接口技术

MATLAB外部程序接口技术 M编译器的功用和前提准备 创建MEX文件 MEX文件编译的验证 【例11.2-1】验证mex应用程序把C码文件编译成MEX文件的正确性。 (1)先将matlab\extern\examples\mex目录下的yprime.c文件复制到用户自己的工作目录(比方d:\mywork),然后将此文件名改为my_yprime.c。 (2)运行以下指令 cd d:\mywork mex my_yprime.c my_yprime(1,1:4) which my_yprime ans = 2.0000 8.9685 4.0000 -1.0947 d:\mywork\my_yprime.dll 〖说明〗 应该指出:mex的编译操作也可以象图11.2-1那样在DOS环境中进行,结果相同。 图 11.2-1 在DOS状态下进行编译操作 【例11.2-2】验证mcc应用程序把M码文件编译成MEX文件的正确性。 (1)先将matlab\extern\examples\mex目录下的yprime.m文件复制到用户自己的工作目录(比方d:\mywork),然后将此文件名改为my_yprime_m.m。 (2)运行以下指令 cd d:\mywork %把用户目录指定为当前目录 mcc -x my_yprime_m my_yprime_m(1,1:4) which my_yprime_m ans = 2.0000 8.9685 4.0000 -1.0947 d:\mywork\my_yprime_m.dll 由M文件创建C MEX文件的算例 【例11.2-3】先编写一个“判断方阵是否奇异”的M文件,然后由该M文件生成相应的MEX文件。 (1)在MATLAB的编辑器中,编写下面的函数文件exm1.m 。 [exm1.m] function y=exm1(A) [m,n]=size(A); if m~=n; error(An input matrix should be n-by-n.) end r=rank(A); if r==m disp(This matrix is nonsigular) else disp(This matrix is sigular) end (2)把该函数文件存放于用户目录d:\mywork下。 (3)在MATLAB命令窗中,运行以下指令对exm1.m进行编译。 mcc -x exm1 %编译m文件。 (4)调用MEX文件exm1.dll 进行计算 A=[1,0,1;2,1,0;4,1,4] exm1(A) which exm1 A = 1 0 1 2 1 0 4 1 4 This matrix is nonsigular d:\mywork\exm1.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(square) (2)对该脚本文件直接编译将因错误而失败 mcc -x circle ??? Error: File circle is a Script M-file and cannot be compiled with the current Compiler. Error in == H:\MATLAB53\toolbox\compiler\mcc.dll (3)把脚本文件改写成函数文件 [circle_f.m]: function circle_f(r) clf;t=0:pi/100:2*pi;x=r*exp(i*t); plot(x,r*);axis(square) (4)再对circle_f.m进行编译,将顺利通过 mcc -x circle_f (5)运行生成的MEX文件circle_f.dll circle_f(0.5) which circle_f d:\mywork\circle_f.dll 图11.2-2 MEX文件circle_f.dll所画的圆 创建独立的外部应用程序 M编译器的预配置 对M编译器mbuil

文档评论(0)

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

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

1亿VIP精品文档

相关文档