将MATLAB代码转换为Python的工具

176

我有一大堆MATLAB代码是我的硕士论文内容,现在我想将其转换为Python(使用numpy/scipy和matplotlib)并作为开源项目发布。我知道MATLAB和Python科学库之间的相似之处,手动转换不会超过两周时间(只要我每天花一些时间努力工作)。我想知道是否已经有任何可以进行此转换的工具。


9
另一种可能性是按原样公开您的源代码,并在Octave中进行测试(网址为www.gnu.org/software/octave),Octave具有99%的Matlab兼容性。 - oz123
6
我们能否将这个问题移动到http://softwarerecs.stackexchange.com,以便它可以重新打开? - Anderson Green
@andersongreen 这个问题太旧了,无法迁移。 - josliber
2
我认为现在最好的方法是使用Matlab内置工具mcc - zxch3n
2个回答

186

有几种将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,以在其中执行普通的Matlab代码。
  • PyMat:从Python控制Matlab会话。
  • pymat2:似乎已被放弃的PyMat的续集。
  • mlabwrap, mlabwrap-purepy:使Matlab看起来像Python库(基于PyMat)。
  • oct2pyrepository):从Python中运行GNU Octave命令。
  • pymex:将Python解释器嵌入Matlab中,也可在File Exchange上使用。
  • matpy:以各种方式访问MATLAB:创建变量,访问.mat文件,直接接口到MATLAB引擎(需要安装MATLAB)。
  • MatPy:用MatLab类似的接口进行数值线性代数和绘图的Python包。

顺便提一下,在这里查看其他迁移提示可能会有帮助:

另外,对于那些可能会发现它有用的人,这里有:


3
有人对哪个方案最好或哪些情况会失败有意见吗? - Chogg
8
我还没有测试过它们,但似乎smop有一个显著的特点,就是由原始开发者在github上积极维护,并带有一个测试套件。 - Andrew Wagner
在建立接口的方法中,哪一种调用Matlab函数的速度最快? - Viktor Tóth

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接