将 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 的工具 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 spm12 Matlab 代码转换为 python?