首页 文章

从Matlab代码创建独立应用程序

提问于
浏览
5

我有一些Matlab代码和一个GUI,我想制作一个独立的.exe,以便它可以在没有安装Matlab的计算机上使用 .

我知道Matlab编译器以及如何使用它,但是这会创建一个仅在用户安装了MATLAB编译器运行时(MCR)时才有效的.exe .

我感兴趣的是,是否有任何方法可以创建一个仍然使用Matlab代码但不依赖于MCR的独立.exe . 我想让它在你点击它时运行而不需要安装任何其他东西 .

我知道C可以使用Matlab,有没有办法用C代码?任何开源的Matlab替代品怎么样呢?

作为最后的手段,如果我用另一种语言重写Matlab代码,你会推荐哪种语言?我在想C或Python .

谢谢 .

5 回答

  • 2

    我看了MATLAB编译器已经有一段时间但是如果我没记错的话,它曾经能够生成C / C代码而不是全力以赴并生成可执行文件 . 挂断总是在您的代码使用的工具箱中以及编译器是否支持它们 . 您是否有可能在服务器上安装MATLAB应用程序并使用桌面客户端电话获取结果?

    就其他语言而言,我将结合matplotlib(matplotlib.sf.net)查看NumPy and SciPy . 我对这次经历感到非常满意 .

  • 2

    MCR是必需的,但实际上必须安装's a trick: it doesn',仅在PATH上可用 . 运行MCR内容不需要任何注册表项或安装过程中的任何其他特殊内容 . 您只需要可读的MCR文件和可由常规查找机制定位的DLL,其中包括在程序启动时检查PATH .

    例如,我在网络驱动器上运行've run compiled Matlab apps using an MCR that' s "installed" . 您在一台计算机上运行MCR安装程序并将其安装到网络驱动器 X:\Matlab\MCR\R2010b-win32 而不是通常的 C:\Program Files 位置 . 然后让程序通过一个包装器脚本启动,该脚本在调用实际的.exe文件之前将 X:\Matlab\MCR\R2010b-win32\bin\win32 添加到PATH,并且它们已经运行了'll run on any other machine that sees the same drive, even if the MCR installer hasn' . (最终我们停止了,因为从网络加载MCR是一个性能损失 . )

    您可以使用此技巧将MCR与您的应用程序捆绑在一起 . 将整个MCR安装(安装产生的目录树,而不是安装程序本身)粘贴到应用程序目录树的子目录中,并将应用程序的入口点设为.bat文件或其他包装MCR目录的包装器脚本在运行依赖于MCR的.exe文件之前的PATH上 .

    当然,请咨询您的合法人员,以确保这不违反您的许可条款 .

  • 0

    MathWorks最近推出了一款新产品MATLAB Coder . 它能够从您的MATLAB代码生成C \ C代码(生成源代码不可执行) . 生成的代码是可移植的,不依赖于MCR,尽管它只支持核心MATLAB语言功能的子集 .

  • 1

    我研究了一下,我担心你唯一的选择是使用MCR,或者将代码转换成另一种语言 . 有意义的是MathWorks希望您只使用他们的编译器来创建.exe文件 .

    只有在您已经熟悉它们和/或您有足够的时间来完成您想要完成的任务时,才考虑使用其他语言 . 此外,如果您在Matlab中使用的是未编写的函数,那么您还必须编写这些函数,这可能非常困难/不可能 .

    如果以上都不是问题,那么您应该使用哪种语言取决于您 . 您不仅限于C和Python . 我认为,Matlab与其他常用语言非常相似,至少在语法方面如此 . 您将不得不以任何一种方式学习,所以我建议您使用您熟悉的语言,或者选择一种易于查找帮助的语言 . C#和Java是两种比较“着名”的语言 .

  • 1

    Matlab'编译器'不是编译器 . 它将Matlab m代码转换为C代码,然后将其发送到实际的编译器,如Visual Studio中的编译器等 . 它所做的代码实际上并不是人类可读的 .

    要创建独立应用程序,请安装以下工具箱(以您支付的任何价格):

    MATLAB Builder JA,MATLAB Builder NE,MATLAB编译器

    通过将Matlab编译器指向驱动器上的实际编译器(即mbuild)来设置Matlab编译器- Build ) .

    选择一个编译器:[1] C:\ Program Files(x86)\ Microsoft Visual Studio 9.0中的Microsoft Visual C 2008 SP1

    然后使用(即类型deploytool)来制作main并定义各种辅助函数等 . 使用Windows控制台或独立控件 . 然后单击构建 . 它将为您创建exe文件 . 您也可以根据需要编译为DLL等 .

    较新版本的'编译器'支持编译eval,所有获得许可的工具箱,并且它支持导入java类,允许您使用例如用于xml文件解析等的DOM .

    要在未安装Matlab的计算机上使用生成的exe文件,您需要获取Matlab MCR并进行安装 . MCR必须与您用于编译代码的Matlab版本完全匹配 .

    问候,

    伊万

相关问题