matlab的编译功能,matlab编译功能学习小结

41528d3028836879cd698677c3999917.gifmatlab编译功能学习小结

由于时间仓促,简单地学习了如何将.m 文件打包为. 文件 首先介绍一下 MATLAB 编译器 MATLAB 编译器 功能 1、产生 C 源码,并进而生成 MEX 文件。这种 MEX 文件的优点是:一,当程序变量为实数, 或向量化程度较低,或含有循环结构时,采用该法可提高运行速度;二,与 ASCII 码的 M 文 件不同,MEX 文件采用二进制代码生成,能更好地隐藏文件算法,使之免遭非法修改。 2、产生 C 或 C++源码,以便与其他 C/C++模块结合行成独立的外部应用程序。运行所产生 的应用程序,无需 MATLAB 环境的支持,但是往往需要 MATLAB 提供的 C/C++ 数学库;如 果调用了 MATLAB 绘图指令,则还需要 MATLAB 提供的 C/C++ 图形库 3、产生 C MEX 的 S 函数,与 Simulink 配合使用,以提高 S-函数的运行速度 4、产生 C 共享库(动态链接库)或 C++静态库,他们的使用无需 MATLAB 环境的支撑,但 是需要 MATLAB 的数学库 局限性 1、无法编译脚本文件 2、不支持用户自定义对象 3、不支持 ,,inline 等函数 4、不支持的 MATLAB 的 Java 接口 脚本文件改写为函数文件 M 脚本文件不能直接被 MATLAB 编译器所编译,解决方案:先把脚本 M 文件改写成函数 M 文 件,然后再对这函数文件进行编译。下面通过举例进行阐述 例:有一个绘图的 M 脚本文件 circle.m 如下。希望获得一个 MEX 绘图程序, (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 ==> C:\MATLAB6p5p1\toolbox\compiler\mcc.dll (3)把脚本文件改写成函数文件 改写方法之一:在原始脚本文件最前面,加一行 function circle_f(r).具体如下: [circle_f.m] function circle_f(r) clf; r=2;t=0; pi/100:2*pi; x=r*exp(i*t); plot(x,’r*’); axis(‘square’); (4) 再对 circle_f.m 进行编译,将顺利进行通过 mcc –x circle %mcc 是编译指令 (5)运行生成的 MEX 文件 circle_f.dll circle_f(0.5) %调用 circle_f 绘制一半径为 0.5 的圆 which circle_f %查询所调用的 circle_f 路径全称 下面介绍一下编译器的配置 为产生的 MEX 文件进行预配置 1、 对 MATLAB 编译器应用程序 mex 的设置在 MATLAB 命令窗中运行 mex –setup 2、 配置正确性的验证 验证分两步:第一步,验证 mex 应用程序;第二步,验证 mcc 应用程序。验证中原始文件取 自 MATLAB。这样可避免因原始文件不当,而造成验证失败。 (1) mex 应用程序的验证本过程主要验证 mex 能否正确地将 C 码文件转换为 MEX 文件步骤如下:先将\extern\examples\mex 目录下的 yprime.c 文件复制到用户自己的工作目 录(比方 d:\mywork ), 然后将此文件名改为:my_yprime.c在 MATLAB 指令窗中运行以下指令cd d:\mywork % 把用户目录指定为当前目录 mex my_yprime.c % 由 my_yprime.c 文件生成 my_yprime.dll 文件 my_yprime(1,1:4) % 运行 my_yprime.dll 文件 which my_yprime % 获得 my_yprime.dll 文件的位置信息 ans = 2.0000 8.9685 4.0000 -1.0947 d:\mywork\my_yprime.dll (2) 在 MATLAB 命令窗中验证 mcc 应用程序先将\extern\examples\mex 目录下的 yprime.c 文件复制到用户自己的工作目 录(比方 d:\mywork ), 然后将此文件名改为:my_yprime_m.c在 MATLAB 指令窗中运行以下指令 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 (3)在 DOS 提示符后验证 mex 、 mcc 应用程序 为产生独立外部应用程序进行配置 要实现从 M 文件到独立外部应用程序的转换,也必须先对 MATLAB 编译器进行正确的设置。 预配置包括两个过程:第一,根据外部编译器的类型、软件位置对 MATLAB 编译器进行设置, 同时对 MATLAB C 数学函数库进行选择;第二,利用 MATLAB 提供的标准文件对用户设置加 以验证。 1、 对 MATLAB 编译器 mbuild 应用程序的设置在 MATLAB 命令窗口运行 mbuild –setup 2、 配置正确性的验证 验证分两步:第一步,验证 mbuild 应用程序 第二步,验证 mcc 应用程序 (1) mbuild 应用程序的验证 先将\extern\examples\cmath 目下的 ex1.c 文件复制到用户自己的工作目录, 然后将此文件名改为 my_ex1.c 在 MATLAB 指令窗中运行以下指令 cd d:\mywork % 把用户目录指定为当前目录 mbuild my_ex1.c % 在 d:\mywork 下生成 my_ex1. 文件 (2) mcc 应用程序的验证 先将\extern\examples\cmath 目下的 hello.c 文件复制到用户自己的工作目录, 然后将此文件名改为 my_hello.c 在 MATLAB 指令窗中运行以下指令mcc -p my_hello.m (3) 在 DOS 状态下验证 mbuild 、 mcc 工作正确性本次任务的实现: 将 gui 生成 已有 gui.m 文件和 gui.fig 文件 1 在 matlab 的 command 窗口中输入mcc -B sgl GUI.m (注:mcc -m GUI.m 表示创建 C 的独立程序mcc -p GUI.m 表示创建 C++ 的独立程序mcc -B sgl GUI.m 表示创建 C 的独立程序包含图形mcc -B sglcpp GUI.m 表现创建 C++的独立程序包含图形) 2.将上步生成的文件包括*m文件和

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值