我想在MATLAB中打包一个应用程序供另一个团队使用。 他们将拥有适当版本的MATLAB来运行此应用程序,但他们可能不一定拥有应用程序使用的所有工具箱的许可证。
有没有办法将工具箱“捆绑”到应用程序中,以便它们不需要昂贵的许可证来运行它?
如果没有,是否可以以不同的方式创建独立/许可证独立的MATLAB应用程序?
编辑:其中一些应用程序可能具有GUI和命令行界面。
答案 0 :(得分:4)
要生成可由MATLAB运行的代码,您需要MATLAB Coder。 codegen
命令将生成可在MATLAB中运行的可执行文件。 MathWorks的Loren在产品上有一个nice blog post。
Here is an example of how to use codegen
从MATLAB代码创建MEX函数。
一个重要的警告是,使用MATLAB Coder,MATLAB的完整功能尚不可用于编译。这是因为生成的二进制文件不需要MATLAB编译器运行时(MCR),它本质上是一个无头的MATLAB虚拟机。相反,MATLAB Coder生成的C代码是真正独立的,但代码生成在某种程度上受到限制。功能子集的Here is a description和here are complete lists of functions supported。大多数工具包函数似乎都是根据categorical list支持的。
如果不支持所需的功能,则需要使用编译器生成独立库并将自己的MEX接口滚动到这些库,正如MrAzzaman所说。另一种可能性是使用loadlibrary
函数直接加载编译器生成库,尽管我从未尝试过最后一个选项。如果您无法在MATLAB中成功地与这些库进行交互,那么MATLAB编译器当然可以用于生成独立的可执行文件。 deploytool
简化了打包代码及其依赖关系的过程。
答案 1 :(得分:3)
MATLAB Compiler听起来就像你需要的那样。不幸的是,它是一个单独的工具箱,你必须购买。
编辑:我应该注意,这会将您的MATLAB代码编译成一个应用程序/库,不是 MATLAB代码。我相信其他团队仍然可以在MATLAB中使用它,但我不认为他们能够看到代码本身。