Narzędzie do konwersji kodu MATLAB na Python [zamknięte]

150

Mam sporo kodu MATLAB z mojej pracy magisterskiej, którą chcę teraz przekonwertować na Python (używając numpy / scipy i matplotlib) i rozpowszechniać jako open-source. Znam podobieństwo między bibliotekami naukowymi MATLAB i Python, a ich ręczne przekonwertowanie zajmie nie więcej niż dwa tygodnie (pod warunkiem, że będę nad tym pracował codziennie przez jakiś czas). Zastanawiałem się, czy jest już dostępne jakieś narzędzie, które może wykonać konwersję.

Jack_of_All_Trades
źródło
7
Inną możliwością jest wydanie kodu źródłowego bez zmian i przetestowanie go w Octave (www.gnu.org/software/octave), który ma 99% konkurencyjności w matlabach.
Oz123
2
@josliber: Czy możemy przenieść to pytanie na softwarerecs.stackexchange.com, aby można było je ponownie otworzyć?
Anderson Green
@andersongreen pytanie jest zbyt stare na migrację
josliber
1
Myślę, że teraz najlepszym sposobem na to jest użycie wbudowanego narzędzia Matlab MCK
R3m

Odpowiedzi:

157

Istnieje kilka narzędzi do konwersji Matlaba do kodu Pythona.

Jedynym, który widział ostatnią aktywność (ostatnie zatwierdzenie z czerwca 2018), jest kompilator S mall M atlab t o P ython (opracowany również tutaj: SMOP @ chiselapp ).

Inne opcje obejmują:

  • LiberMate : przetłumacz z Matlab na Python i SciPy (wymaga Python 2, ostatnia aktualizacja 4 lata temu).
  • OMPC : Matlab to Python (nieco przestarzały).

Ponadto dla osób zainteresowanych interfejsem między dwoma językami, a nie konwersją:

  • pymatlab: komunikuj się z Pythona, wysyłając dane do obszaru roboczego MATLAB, operując na nich skryptami i wycofując dane wynikowe.
  • Tunele czasoprzestrzenne Python-Matlab : obsługa obu kierunków interakcji.
  • Most Python-Matlab : użyj Matlab z poziomu Pythona, oferuje matlab_magic dla iPythona, do wykonywania normalnego kodu Matlab z poziomu ipython.
  • PyMat : Sterowanie sesją Matlab z Pythona.
  • pymat2: kontynuacja pozornie porzuconego PyMat.
  • mlabwrap, mlabwrap-purepy : sprawia, że ​​Matlab wygląda jak biblioteka Pythona (oparta na PyMat).
  • oct2py: uruchamia polecenia GNU Octave z poziomu Pythona.
  • pymex: Osadza interpreter języka Python w Matlabie, również na wymianie plików .
  • matpy: Dostęp do MATLAB-a na różne sposoby: tworzenie zmiennych, dostęp do plików .mat, bezpośredni interfejs do silnika MATLAB (wymaga zainstalowania MATLAB-a).
  • MatPy : Pakiet Pythona do numerycznej algebry liniowej i kreślenia z interfejsem podobnym do MatLab.

Przy okazji warto poszukać innych wskazówek dotyczących migracji:

Z drugiej strony, chociaż wcale nie jestem fortranfanem, dla osób, które mogą uznać to za przydatne, jest:

Ioannis Filippidis
źródło
2
Czy ktoś ma komentarz, który z nich działa najlepiej, a który zawodzi?
Chogg,
8
Nie testowałem ich jeszcze, ale wygląda na to, że smop wyróżnia się tym, że jest aktywnie obsługiwany przez oryginalnego programistę na githubie z zestawem testowym.
Andrew Wagner,
która z metod jest najszybsza do wywołania funkcji MATLAB z metod tworzących interfejs?
Viktor Tóth