将 MATLAB 代码转换为 Python 的工具 [关闭]

Posted

技术标签:

【中文标题】将 MATLAB 代码转换为 Python 的工具 [关闭]【英文标题】:A tool to convert MATLAB code to Python [closed] 【发布时间】:2012-04-08 08:56:37 【问题描述】:

我的 MS 论文中有一堆 MATLAB 代码,现在我想将其转换为 Python(使用 numpy/scipy 和 matplotlib)并作为开源分发。我知道 MATLAB 和 Python 科学库之间的相似性,手动转换它们不会超过两周(前提是我每天都在努力工作一段时间)。我想知道是否已经有任何可用的工具可以进行转换。

【问题讨论】:

另一种可能性是按原样发布您的源代码,并在具有 99% 的 matlab 竞争力的 Octave (www.gnu.org/software/octave) 中对其进行测试。 @josliber:我们可以将此问题移至softwarerecs.stackexchange.com 以便重新打开吗? @andersongreen 这个问题对于迁移来说太老了 我认为现在最好的方法是使用matlab内置工具mcc 【参考方案1】:

有多种工具可以将 Matlab 转换为 Python 代码。

最近看到的唯一活动(2018 年 6 月的最后一次提交)是 Small Matlab to Python compiler(也在此处开发:SMOP@chiselapp)。

其他选项包括:

LiberMate:从 Matlab 翻译成 Python 和 SciPy(需要 Python 2,4 年前最后一次更新)。 OMPC: Matlab 到 Python(有点过时了)。 Mat2py:Matlab 到 Python(需要 Python 2)。

另外,对于那些对两种语言之间的接口和转换感兴趣的人:

pymatlab:通过将数据发送到 MATLAB 工作区、使用脚本对其进行操作并拉回结果数据,从 Python 进行通信。 Python-Matlab wormholes:支持双向交互。 Python-Matlab bridge:在 Python 中使用 Matlab,为 iPython 提供 matlab_magic,在 ipython 中执行普通的 matlab 代码。 PyMat:从 Python 控制 Matlab 会话。 pymat2:看似废弃的 PyMat 的延续。 mlabwrap、mlabwrap-purepy:让 Matlab 看起来像 Python 库(基于 PyMat)。 oct2py (repository):在 Python 中运行 GNU Octave 命令。 pymex:在 Matlab 中嵌入 Python 解释器,也在 File Exchange 上。 matpy:通过多种方式访问​​ MATLAB:创建变量、访问 .mat 文件、直接连接 MATLAB 引擎(需要安装 MATLAB)。 MatPy:用于数值线性代数和绘图的 Python 包,具有​​类似于 MatLab 的界面。

顺便说一句,在这里寻找其他迁移提示可能会有所帮助:

http://bci2000.org/downloads/BCPy2000/Migration.html

另一方面,对于可能觉得它有用的人来说:

matlab2fortran

【讨论】:

有没有人对其中哪些最有效或哪些案例失败有意见? 我还没有测试过它们,但似乎 smop 的唯一区别是由原始开发人员在 github 上使用测试套件积极维护。 在建立接口的方法中,哪一种调用matlab函数最快?【参考方案2】:

还有可以在python中调用.m文件的oct2py

https://pypi.python.org/pypi/oct2py

它需要与 MATLAB 高度兼容的 GNU Octave。

https://www.gnu.org/software/octave/

【讨论】:

以上是关于将 MATLAB 代码转换为 Python 的工具 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将matlab代码转换为python

如何将 spm12 Matlab 代码转换为 python?

将 Matlab 转换为 Python

如何使用 SMOP 将 Matlab 转换为 Python 代码

将python Dataframe转换为Matlab文件

无法使用 Matlab Coder 将 Matlab 代码转换为 C 代码