Инструмент для преобразования кода MATLAB в Python

У меня есть куча кода MATLAB из моего тезиса MS, который теперь я хочу конвертировать в Python (используя numpy/scipy и matplotlib) и распространять как открытый источник. Я знаю сходство между MATLAB и научными библиотеками Python, и их конвертировать вручную будет не более двух недель (при условии, что я работаю над этим каждый день в течение некоторого времени). Мне было интересно, есть ли какой-либо инструмент, который может сделать преобразование.

Ответ 1

Существует несколько инструментов для преобразования Matlab в код Python.

Единственный, кто видел недавнюю активность (последний коммит с июня 2018 года) - это S mall M atlab t o P ython compiler (также разработано здесь: SMOP @chiselapp).

Другие варианты включают в себя:

  • LiberMate: перевод с Matlab на Python и SciPy (требуется Python 2, последнее обновление 4 года назад).
  • OMPC: Matlab to Python (немного устаревший).

Также для тех, кто интересуется интерфейсом между двумя языками, а не конверсией:

  • pymatlab: общайтесь из Python, отправляя данные в рабочую область MATLAB, оперируя ими с помощью сценариев и извлекая полученные данные.
  • Червоточины Python-Matlab: поддерживаются оба направления взаимодействия.
  • Мост Python-Matlab: использовать Matlab изнутри Python, предлагает matlab_magic для iPython для выполнения нормального кода Matlab изнутри ipython.
  • PyMat: управление сеансом Matlab из Python.
  • pymat2: продолжение, казалось бы, заброшенного PyMat.
  • mlabwrap, mlabwrap-purepy: сделать Matlab похожим на библиотеку Python (на основе PyMat).
  • oct2py: запускать команды GNU Octave из Python.
  • pymex: встраивает интерпретатора Python в Matlab, также на обмене файлами.
  • matpy: Доступ к MATLAB различными способами: создание переменных, доступ к файлам .mat, прямой интерфейс к движку MATLAB (требуется установить MATLAB).
  • MatPy: пакет Python для числовой линейной алгебры и построения графиков с интерфейсом, подобным MatLab.

Кстати, может быть полезно поискать здесь другие советы по миграции:

С другой стороны, хотя я вовсе не фанат fortran, для людей, которые могут найти это полезным, есть:

Ответ 2

Здесь OMPC, "Компилятор с открытым исходным кодом Matlab-to-Python", упомянутый @IoannisFilippidis в его ответ, - не использовали его, хотя.

Ответ 4

Я не знаю никаких автоматических инструментов, но здесь можно найти общее руководство: http://www.scipy.org/NumPy_for_Matlab_Users

В общем, я бы просто посмотрел документацию на numpy, которая очень хорошая. Некоторые имена методов отображаются напрямую, хотя есть различия. Мне не потребовалось много времени, чтобы перейти от Matlab к Numpy, когда я сделал прыжок пару лет назад.