Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何从.m文件创建可执行的.exe文件_Matlab_Executable - Fatal编程技术网

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

Matlab 如何从.m文件创建可执行的.exe文件,matlab,executable,Matlab,Executable,我想知道是否有一种方法可以从MATLAB中的.m文件创建一个.exe文件,这样它就可以在没有MATLAB的机器上运行(就像可以在C,C++中运行一样) 我知道编写MATLAB函数是一种方法,但我不确定它是否可以在没有MATLAB的机器上运行 另外,我想隐藏代码,创建一个脚本,用户可以使用自己的数据文件运行该脚本。试试: mcc -m yourfile 另请参见帮助mcc这是执行此操作的标准方法mcc是命令。运行程序需要Matlab运行时;我不确定它是否可以直接与可执行文件集成。以前可以用旧版本

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

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

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

试试:

mcc -m yourfile

另请参见帮助mcc

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

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

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


与前面提到的其他代码一样,mcc/mcc.exe是您希望将matlab代码转换为C代码的代码。

如果您的代码更像是一个数据分析例程(与可视化/GUI相比),请尝试。它是免费的,它的许多功能与MATLAB兼容。(不是100%,但可能是99.5%)

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

deploytool
在命令行中。Mathworks在本视频教程中很好地记录了如何使用它:

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

uigetfile % or uigetdir if you need every file in a directory
配合使用

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


查看MATLAB主站点,了解其编译器产品及其局限性

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

mcc -?
说明使用*.m生成*.exe(独立应用程序)的语法为:

 mcc -m <matlabFile.m> 

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

需要注意的一点是,这是一个工具箱,您必须为此支付额外费用。这一点很好。我不确定,因为我一直在大学里安装它。Matlab编译器价格昂贵-它会让你花费5000美元…而且deploytool提供了一个选项,可以将MCR库包含在你的独立可执行文件中。99.32%的统计数据都在SpotThank上。谢谢,它工作得很好,但不确定它是否在未安装matlab的机器上工作。它是否适用于依赖于操作系统(如GUI API)的matlab的各个方面?GUI或图形产品是否成功编译?@Vass,是的,它也会编译GUI。
mcc -m file.m