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

Posted

技术标签:

【中文标题】如何使用 SMOP 将 Matlab 转换为 Python 代码【英文标题】:How to use SMOP to convert Matlab into Python code 【发布时间】:2018-09-29 19:18:12 【问题描述】:

我已经通过 pip 安装了 SMOP,它似乎工作正常。我的 python 文件夹 \scripts\ 文件夹中有 smop-script.pysmop.exe 文件。

假设我有一个名为myMatlabFile.m 的matlab 文件位于C:\Users\MyMatlabCode。如何使用 smop 翻译该文件?

SMOP 文档仅包含使用main.py 打开包含在\smop\ 文件夹中的文件的示例,而我没有类似的内容。此外,github 页面并没有说明它是否仅适用于 2.7 或 3. 或其他。

我希望这个包能加快我的 Matlab -> Python 3.6 转换,但如果现在有更好的翻译器,请也告诉我/代替。

【问题讨论】:

你试过询问包的创建者吗? 是的,但在其 GitHub 页面上几周没有回复该线程。 【参考方案1】:

我刚刚尝试使用 SMOP 转换 matlab 文件,它工作正常。我在 Anaconda Prompt 环境中使用 pip 安装了软件。

pip install smop

安装后我有 0.41 版本。

我将要转换的文件复制到我在 Anaconda Prompt 环境中运行 pip 代码的文件夹中。

然后我使用了代码 smop 和文件名 .m 并在同一个文件夹中得到了一个文件 .py。

smop VI.m

【讨论】:

如果在转换文件时遇到错误:AttributeError: 'DiGraph' object has no attribute 'node' install pip install networkx==1.11 It's because Networkx v2 is somewhat non-backward compatible with smop (quite outdated)【参考方案2】:

使用 smop 和其他命令没有区别 线工具。首先,获取来源。下载、克隆、tar、wget 或 任何对你有用的东西。让我们调用包含 setup.py 的目录 根目录。将目录更改为该目录。现在安装 smop

> pip install .

让我们看看它是否有效:

> smop -V

0.40

是的,确实如此。

让我们看看文档:

> smop | more

最后是翻译本身。 如果你有一堆 Matlab m 文件,命名为 foo.m、bar.m、bzz.m,并且你想将这些文件翻译成 python,你输入

> smop foo.m bar.m bzz.m

【讨论】:

感谢您的回复,但实际上并没有帮助。您对我们对这些事情如何运作的了解过多假设,并且您没有解决原始问题中的任何细节。我不怀疑您的解释足以让您了解如何使用 smop,但对于其他许多人来说还不够。

以上是关于如何使用 SMOP 将 Matlab 转换为 Python 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 matlab 编码器将 matlab 函数“pchip”转换为 c 代码

如何将 MATLAB 中的 detectMSERFeatures 函数转换为 C?

如何使用matlab将文本转换为数值型数据?

如何使用 MatLab 将 char 格式的日期转换为时间表格式

将视频转换为单张图片(灰度)【MATLAB】

将 MATLAB 代码转换为库