【问题标题】:How to create an executable .exe file from a .m file如何从 .m 文件创建可执行的 .exe 文件
【发布时间】:2010-12-27 22:04:22
【问题描述】:

我想知道是否有一种方法可以在 MATLAB 中从“.m”文件创建一个“.exe”文件,这样它就可以在没有 MATLAB 的机器上运行(就像它可以在 C 中完成一样, C++)。

我知道编写 MATLAB 函数是一种方法,但我不确定它是否可以在没有 MATLAB 的机器上运行。

我还想隐藏我的代码,只创建一个脚本,用户可以使用自己的数据文件运行该脚本。

【问题讨论】:

    标签: matlab executable


    【解决方案1】:

    Matlab Compiler 是执行此操作的标准方法。 mcc 是命令。运行程序需要 Matlab 运行时;我不确定它是否可以直接与可执行文件集成。

    【讨论】:

    • 有一点需要注意 - 这是一个工具箱,您需要额外付费。
    • 好点。我不确定,因为我一直致力于包含它的大学安装。
    • Matlab 编译器价格昂贵 - 它会让你回到 5000 美元。
    • ...deploytool 提供了一个选项,可以将 MCR 库包含在您的独立可执行文件中。
    【解决方案2】:

    如果您安装了 MATLAB 编译器,则有一个用于编译的 GUI 选项。尝试输入

    deploytool
    

    在命令行中。 Mathworks 在本视频教程中很好地记录了如何使用它:http://www.mathworks.com/products/demos/compiler/deploytool/index.html

    此外,如果您想包含用户输入(例如选择文件或目录),请查看

    uigetfile % or uigetdir if you need every file in a directory
    

    配合使用

    guide
    

    【讨论】:

    • GUI或图形制作是否编译成功?
    • @Vass,是的,它也会编译 GUI。
    【解决方案3】:

    试试:

    mcc -m yourfile
    

    另见help mcc

    【讨论】:

    • 谢谢,效果很好,但不确定它是否适用于未安装 matlab 的机器。
    【解决方案4】:

    如果您的代码更多是数据分析例程(相对于可视化/GUI),请尝试GNU Octave。它是免费的,而且它的许多功能都与 MATLAB 兼容。 (不是 100%,但可能是 99.5%。)

    【讨论】:

    • 99.32%的统计数据是现场制作的
    【解决方案5】:
    mcc -?
    

    说明用 *.m 制作 *.exe(独立应用程序)的语法是:

     mcc -m <matlabFile.m> 
    

    例如:

    mcc -m file.m
    

    会在当前目录下创建file.exe。

    【讨论】:

      【解决方案6】:

      以前可以使用旧版本的 Matlab 将 Matlab 编译为 C。查看 Matlab 附带的其他工具。

      最新的 Matlab 代码可以导出为 Java 的 jar 或 .Net Dll 等。然后您可以针对该库编写可执行文件 - 顺便说一下,它会被混淆。用户必须安装免费提供的 Matlab 运行时。

      和其他人提到的一样,mcc / mcc.exe 是您想要将 matlab 代码转换为 C 代码的东西。

      【讨论】:

        【解决方案7】:

        编译 .m 文件(或多个文件)的“StandAlone”方法需要一组在目标(非 Matlab)平台上发布的 Matlab 库 (.dll) 文件,以允许执行编译器生成的 .exe。

        查看 MATLAB 主站点以了解其编译器产品及其限制。

        【讨论】:

          【解决方案8】:

          我开发了一个非 matlab 软件,用于直接编译 m 文件 (TMC Compiler)。这是一个将 m 文件项目转换为 C 的开源转换器。编译器生成的 C 代码可以与提供的开源运行时库链接以生成独立的应用程序。该库实现了一组内置函数;线性代数运算使用 LAPACK 代码。如文档中所述,可以通过自定义实现来扩展内置函数集。

          【讨论】:

          • 它是否适用于依赖于操作系统的 MATLAB 的各个方面,例如 GUI API?
          猜你喜欢
          • 2016-12-20
          • 2011-12-18
          • 1970-01-01
          • 2023-03-06
          • 2011-10-22
          • 1970-01-01
          • 2016-09-07
          • 1970-01-01
          相关资源
          最近更新 更多