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

92

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

  • 7
    другая возможность состоит в том, чтобы выпустить ваш исходный код как есть и протестировать его в Octave (www.gnu.org/software/octave), который имеет 99% конкурентоспособность по Matlab.
  • 1
    @ Денис: должен быть ответ
Показать ещё 3 комментария
Теги:
matplotlib
numpy
scipy

4 ответа

105
Лучший ответ

Существует несколько альтернативных инструментов для преобразования кода Matlab в код Python (еще не протестировано):

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

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

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

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

  • 2
    У кого-нибудь есть комментарий о том, какие из них лучше всего работают, а какие нет?
  • 7
    Я еще не тестировал их, но похоже, что у smop есть единственное отличие: он активно поддерживается первоначальным разработчиком на github с набором тестов.
Показать ещё 1 комментарий
9

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

  • 4
    Я попробовал, слишком много неопределенных команд (скопировано из matlab)
3

Также есть oct2py, который может вызывать файлы .m в пределах python

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

Для этого требуется GNU Octave, который очень совместим с MATLAB.

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню