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

150

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

Jack_of_All_Trades
источник
7
другая возможность состоит в том, чтобы выпустить ваш исходный код как есть и протестировать его в Octave (www.gnu.org/software/octave), который имеет 99% конкурентоспособность по Matlab.
Oz123
2
@josliber: Можем ли мы перенести этот вопрос на softwarerecs.stackexchange.com, чтобы его можно было снова открыть?
Андерсон Грин
@andersongreen вопрос слишком стар для миграции
josliber
1
Я думаю, что сейчас лучший способ сделать это - использовать встроенный в Matlab инструмент mcc
R3m

Ответы:

157

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

Единственное, что видел в последнее время неактивен (последний коммит с июня 2018 года) является S центр М atlab т о р ython компилятор (также разработан здесь: 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, также на File Exchange .
  • matpyДоступ к MATLAB различными способами: создание переменных, доступ к файлам .mat, прямой интерфейс к движку MATLAB (требуется установка MATLAB).
  • MatPy : пакет Python для числовой линейной алгебры и построения графиков с интерфейсом, подобным MatLab.

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

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

Иоаннис Филиппидис
источник
2
У кого-нибудь есть комментарий, какие из этих работ лучше всего или какие случаи терпят неудачу?
Чогг
8
Я еще не тестировал их, но похоже, что у smop есть единственное отличие: он активно поддерживается первоначальным разработчиком на github с набором тестов.
Эндрю Вагнер
какая из них быстрее всего вызывает функции matlab из методов, устанавливающих интерфейс?
Виктор Тот