【问题标题】:which programming languages can be called by matlab?matlab可以调用哪些编程语言?
【发布时间】:2014-05-09 19:37:30
【问题描述】:

我想知道matlab可以调用哪些编程语言。

例如,我很确定 matlab 可以使用 C 函数,也许还可以使用 java。

我需要这些东西来进行工业项目,所以我需要一些效果很好的东西。 例如,我找到了一些在 matlab 中调用 python 函数的教程,但它们在我看来不是很好且稳定的解决方案。

我不是该领域的专家,我对 matlab 的了解非常有限。所以请耐心回答。

这个项目与机器学习有关,软件可能会在集群上运行。

根据这篇文章编辑Embedding Python in MATLAB 似乎在使用 python 导入 numpy 时出现问题。 在这种环境中使用 python 的唯一原因是 numpy 库。 没有它,它对我来说几乎毫无用处。

你觉得我用java或者c调用一些数学库会遇到类似的问题吗?

【问题讨论】:

  • Matlab可以调用c、c++和Java。
  • @otherDewi - 它也可以调用 .Net 程序集 (C# / VB)

标签: matlab function


【解决方案1】:

这里列出了大多数接口:

http://www.mathworks.de/de/help/matlab/external-interfaces.html

对于 Python,我看到了不同的解决方案:

  • Windows 平台上的 COM。这需要注册一个应用程序,检查这是否可行并在集群上允许。
  • XMLRPC 或 SOAP。您可能需要在 Matlab 中使用 Java 类,但您已经意识到这非常简单。验证集群是否有可用的 Java 虚拟机,许多运行 matlab 时没有 java。
  • 您可以将 python 代码嵌入到 c 中,这样您就可以编写运行 c 代码的 mex 函数:http://docs.python.org/2/extending/embedding.html
  • 使用 python 的命令行界面。

除了记录在案的限制之外,我认为这些解决方案没有任何问题。如果您熟悉 C 或 Matlab,我会选择第二个或第三个选项。这允许您编写一个包装器来访问具有非常基本的 matlab 知识的 python。

【讨论】:

    【解决方案2】:

    有两种主要方法可以实现这一点:

    1. 编写 MEX 函数,基本上是 C/C++ 或 Fortran 方法,使用 Matlab 特定的 API。然后,您可以像调用任何用 M 语言文件编写的函数一样调用这些方法。这被描述为here
    2. 调用用 Java、.Net、C/C++ 和 COM 服务器编写的外部库。这被描述为here

    这两种方法都需要很好地理解您在做什么,尽管我认为编写 MEX 函数比引用现有库要困难得多。

    【讨论】:

      【解决方案3】:

      我不确定编程语言,但您可以通过运行 run('C:\someCompiledProgram.exe') 通过 EXE 文件执行此操作 如果您需要结果,您可以使用: [状态,结果] = system('command')

      你可以在这里阅读: http://nf.nci.org.au/facilities/software/Matlab/techdoc/ref/system.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多