【问题标题】:Non-windows way to invoke Matlab from Mathematica从 Mathematica 调用 Matlab 的非 Windows 方式
【发布时间】:2011-03-02 04:31:38
【问题描述】:

有人问过before,但该解决方案似乎不适用于 MacOS。 Wolfram 库has a package 用于 7 年的 Matlab 版本。是否有适用于 MacOS 10.6 和 Matlab 7.9 的解决方案?

我想从 Mathematica 打电话给CVX

【问题讨论】:

  • 我只尝试使用 Mathworks FileExchange 上的 Mathematica 符号工具箱从 Matlab 调用 mma,所以我没有答案。话虽如此,Matlab 和 Mathematica 都与 Java 很好地集成在一起。特别是,从 Mathematica 调用 Java 类非常容易。也许 Matlab 方面的 JMI (undocumentedmatlab.com/blog/jmi-java-to-matlab-interface) 与 mma 方面的 JLink 相结合可以解决问题……
  • 从 Matlab 调用 Java 类也很容易,反之则很难。我在使用 Matlab Builder JA 方面取得了一些成功,但这意味着为我想从外部调用的每个 Matlab 函数制作一个包装器
  • 我希望您能找到更简单的方法,但万一其他方法都失败了,您必须编写自己的解决方案。我能感受到你的痛苦,我也面临着类似的问题,没有用于连接我感兴趣的 2 个应用程序的官方包。试试这个 Wikipedia 页面以获取 inter-process communication 方法的摘要。
  • 看看MATLink。 :)

标签: matlab wolfram-mathematica


【解决方案1】:

您可以使用RunThrough["command",expr],这将运行外部命令command,并将expr(一个Mathematica 表达式)作为输入提供给command

一个合适的命令示例是"matlab -r \"matlab expr\"",您可以将您的 CVX 特定代码放在“matlab expr”字符串中。

【讨论】:

    【解决方案2】:

    更新:现在,MATLink 可能是最好的方法。它适用于 Windows/Linux/Mac。

    披露:我是 MATLink 的作者之一。


    您是否尝试过改用较新的mEngine?我只能在 Windows 上尝试,但在查看了源代码后,我相信它也可以在其他平台上运行。

    希望您只需要修改 main.c,实际上只需从 MathLink 示例之一(例如 addtwo)复制并粘贴主函数,因为 mEngine 的 main.c 已删除非 Windows 特定部分。 Then compile the package as a MathLink program.

    【讨论】:

    • 哇,感谢您让我注意到 Matlink。看起来很有希望,我很快就会试一试。我可能不应该因为 Matlink 尚未尝试过的好处而赞成这个答案,但我还是这样做了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多