如何从 .m 文件创建一个可执行的 .exe 文件

29

我想知道是否有一种方法可以从 MATLAB 的 '.m' 文件创建一个 '.exe' 文件,使其能在没有安装 MATLAB 的计算机上运行(就像在 C、C++ 中一样)。

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

另外,我想隐藏我的代码,只创建一个脚本,让用户使用他自己的数据文件来运行。

8个回答

22

Matlab Compiler 是实现这一目标的标准方式,mcc是相应的命令。运行程序需要 Matlab 运行时环境,不确定是否可以直接与可执行文件集成。


13
需要注意的一点是,这是一个你需要额外付费的工具箱。 - Andrew Shepherd
好的观点。我不确定,因为我一直在大学安装上工作,它是包括在内的。 - phoebus
2
Matlab编译器价格昂贵,其售价高达5,000美元。 - Doresoom
...并且deploytool提供了一个选项,可以将MCR库与您的独立可执行文件一起包含。 - Doresoom

9
如果您已经安装了MATLAB Compiler,那么有一个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
1
@Vass,是的,它也可以编译GUI。 - Doresoom

7

尝试:

mcc -m yourfile

另请参见帮助 mcc


谢谢,它运行得很好,但不确定它是否在未安装Matlab的机器上运行。 - AP.

2
如果你的代码更多是数据分析程序(而不是可视化/图形界面),可以尝试使用GNU Octave。它是免费的,许多函数与MATLAB兼容。(不是100%,但可能是99.5%。)

27
99.32%的统计数据是即兴虚构的。 - Andreas Bonini

2
mcc -?

这段文字解释了使用 *.m 语法制作 *.exe(独立应用程序)的方法:

 mcc -m <matlabFile.m> 

例如:

mcc -m file.m

将在当前目录中创建file.exe文件。


1

以前的Matlab版本曾经可以将其编译为C代码。可以试试Matlab附带的其他工具。

最新的Matlab代码可以导出为Java的jar文件或.Net的Dll文件等。然后,您可以针对该库编写可执行文件 - 注意,这些文件会被混淆。用户需要安装一个免费提供的Matlab运行时环境。

正如其他人所提到的,mcc/mcc.exe是用来将Matlab代码转换为C代码的工具。


1
“StandAlone”方法用于编译.m文件(或多个文件),需要在目标(非Matlab)平台上提供一组Matlab发布库(.dll)文件,以允许编译器生成的.exe文件执行。
请查看MATLAB主站点以获取其编译器产品及其限制。

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

它是否适用于依赖于操作系统的MATLAB各个方面,例如GUI API? - Vass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接