2012-05-12 73 views
3

让我解释我正在尝试做什么。我有一个应用程序在Matlab编码,我想提供给Matlab用户和非Matlab用户。 所以你会说:只编译它并部署一个可执行文件。精细。是否可以在MATLAB环境内外执行编译代码?

但是,部署的应用程序在某种程度上受限于您可以执行的操作(非常重要的是,您不能执行其他M文件),因此我想也可以让Matlab用户从Matlab内启动已部署的应用程序,以及为这些人提供这些高级功能。 那么可能吗?

当然,我可以提供两个版本:一个.exe和.M但这不是真正优雅,也许有一个很好的把戏做到这一点。 有什么想法?

+0

我不明白的东西:你的应用程序打算做什么?我的意思是,如果它试图做一些不能部署到.exe文件的东西,那么实际上你必须真的有两个不同的应用程序(不只是版本)。你能否提供一个你真正要求的例子。 – eulerleibniz

回答

0

Matlab的不具有内置的功能来做到这一点,并检测是否有人安装了Matlab或没有很大关系的操作系统。

+0

如果有一个名为内置库的可执行文件,并且有一个调用相同库的M文件?用户可以根据他的需要启动M或可执行文件。 –

1

可以在部署的应用程序使用eval。您还可以阅读.m文件,因为它们只是文本。 因此,阅读文件,逐行评估,然后你就可以在编译好的Matlab程序中使用3d方脚本.m文件。

您将无法使用的功能在这种方式中,只有脚本。

我不知道的唯一的事情是,它是否是合法的。我不能保证,你必须自己联系Mathworks。

+0

我不确定你能做到这一点。 见罗兰博客:http://blogs.mathworks.com/loren/2008/06/19/writing-deployable-code/#11 –

+0

@Andrey - 这将工作MATLAB脚本,但Matlab的功能呢? 您无法逐行对它们进行评估,因为在您调用它们之前需要定义它们。这可能是可行的,但你需要很多代码。你不需要编写你自己的Matlab解析器来完成这个工作吗? – grantnz

+0

@grantnz,你是对的,我会更新答案 –

相关问题