【发布时间】:2010-12-27 22:04:22
【问题描述】:
我想知道是否有一种方法可以在 MATLAB 中从“.m”文件创建一个“.exe”文件,这样它就可以在没有 MATLAB 的机器上运行(就像它可以在 C 中完成一样, C++)。
我知道编写 MATLAB 函数是一种方法,但我不确定它是否可以在没有 MATLAB 的机器上运行。
我还想隐藏我的代码,只创建一个脚本,用户可以使用自己的数据文件运行该脚本。
【问题讨论】:
标签: matlab executable
我想知道是否有一种方法可以在 MATLAB 中从“.m”文件创建一个“.exe”文件,这样它就可以在没有 MATLAB 的机器上运行(就像它可以在 C 中完成一样, C++)。
我知道编写 MATLAB 函数是一种方法,但我不确定它是否可以在没有 MATLAB 的机器上运行。
我还想隐藏我的代码,只创建一个脚本,用户可以使用自己的数据文件运行该脚本。
【问题讨论】:
标签: matlab executable
Matlab Compiler 是执行此操作的标准方法。 mcc 是命令。运行程序需要 Matlab 运行时;我不确定它是否可以直接与可执行文件集成。
【讨论】:
如果您安装了 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
【讨论】:
试试:
mcc -m yourfile
另见help mcc
【讨论】:
如果您的代码更多是数据分析例程(相对于可视化/GUI),请尝试GNU Octave。它是免费的,而且它的许多功能都与 MATLAB 兼容。 (不是 100%,但可能是 99.5%。)
【讨论】:
mcc -?
说明用 *.m 制作 *.exe(独立应用程序)的语法是:
mcc -m <matlabFile.m>
例如:
mcc -m file.m
会在当前目录下创建file.exe。
【讨论】:
以前可以使用旧版本的 Matlab 将 Matlab 编译为 C。查看 Matlab 附带的其他工具。
最新的 Matlab 代码可以导出为 Java 的 jar 或 .Net Dll 等。然后您可以针对该库编写可执行文件 - 顺便说一下,它会被混淆。用户必须安装免费提供的 Matlab 运行时。
和其他人提到的一样,mcc / mcc.exe 是您想要将 matlab 代码转换为 C 代码的东西。
【讨论】:
编译 .m 文件(或多个文件)的“StandAlone”方法需要一组在目标(非 Matlab)平台上发布的 Matlab 库 (.dll) 文件,以允许执行编译器生成的 .exe。
查看 MATLAB 主站点以了解其编译器产品及其限制。
【讨论】:
我开发了一个非 matlab 软件,用于直接编译 m 文件 (TMC Compiler)。这是一个将 m 文件项目转换为 C 的开源转换器。编译器生成的 C 代码可以与提供的开源运行时库链接以生成独立的应用程序。该库实现了一组内置函数;线性代数运算使用 LAPACK 代码。如文档中所述,可以通过自定义实现来扩展内置函数集。
【讨论】: