Ein Tool zum Konvertieren von MATLAB-Code in Python [geschlossen]

150

Ich habe eine Menge MATLAB-Code aus meiner MS-Arbeit, den ich jetzt in Python konvertieren möchte (mit numpy / scipy und matplotlib) und als Open Source verteilen möchte. Ich kenne die Ähnlichkeit zwischen wissenschaftlichen Bibliotheken von MATLAB und Python, und die manuelle Konvertierung dauert nicht länger als zwei Wochen (vorausgesetzt, ich arbeite einige Zeit jeden Tag daran). Ich habe mich gefragt, ob bereits ein Tool verfügbar ist, mit dem die Konvertierung durchgeführt werden kann.

Jack_of_All_Trades
quelle
7
Eine andere Möglichkeit besteht darin, Ihren Quellcode unverändert freizugeben und in Octave (www.gnu.org/software/octave) zu testen, das zu 99% mit Matlab konkurriert.
Oz123
2
@josliber: Können wir diese Frage auf softwarerecs.stackexchange.com verschieben, damit sie wieder geöffnet werden kann?
Anderson Green
@andersongreen die Frage ist zu alt für die Migration
Josliber
1
Ich denke, jetzt ist der beste Weg, dies zu tun, Matlab eingebautes Tool mcc zu verwenden
R3m

Antworten:

157

Es gibt verschiedene Tools zum Konvertieren von Matlab in Python-Code.

Die einzige, die aktuellen Aktivitäten gesehen hat (zuletzt von Juni 2018 begehen) ist S mall M atlab t o P ython Compiler (auch hier entwickelt: SMOP @ chiselapp ).

Weitere Optionen sind:

  • LiberMate : Übersetzung von Matlab nach Python und SciPy (Erfordert Python 2, letztes Update vor 4 Jahren).
  • OMPC : Matlab zu Python (etwas veraltet).

Auch für diejenigen, die an einer Schnittstelle zwischen den beiden Sprachen und nicht an der Konvertierung interessiert sind :

  • pymatlab: Kommunizieren Sie von Python aus, indem Sie Daten an den MATLAB-Arbeitsbereich senden, diese mit Skripten bearbeiten und die resultierenden Daten zurückziehen.
  • Python-Matlab-Wurmlöcher : Beide Interaktionsrichtungen werden unterstützt.
  • Python-Matlab-Bridge : Verwenden Sie Matlab in Python, bietet matlab_magic für iPython an, um normalen Matlab-Code in ipython auszuführen.
  • PyMat : Matlab-Sitzung von Python aus steuern .
  • pymat2: Fortsetzung des scheinbar verlassenen PyMat.
  • mlabwrap, mlabwrap-purepy : Lass Matlab wie eine Python-Bibliothek aussehen (basierend auf PyMat).
  • oct2py: Führen Sie GNU Octave-Befehle in Python aus.
  • pymex: Betten Sie den Python-Interpreter in Matlab ein, auch in File Exchange .
  • matpy: Greifen Sie auf verschiedene Arten auf MATLAB zu: Erstellen Sie Variablen, greifen Sie auf .mat-Dateien zu, direkte Schnittstelle zur MATLAB-Engine (erfordert die Installation von MATLAB).
  • MatPy : Python-Paket für numerische lineare Algebra und Plotten mit einer MatLab-ähnlichen Oberfläche.

Übrigens kann es hilfreich sein, hier nach anderen Migrationstipps zu suchen:

In einem anderen Sinne, obwohl ich überhaupt kein fortranFan bin , gibt es für Leute, die es vielleicht nützlich finden, Folgendes:

Ioannis Filippidis
quelle
2
Hat jemand einen Kommentar dazu, welche davon am besten funktioniert oder welche Fälle fehlschlagen?
Chogg
8
Ich habe sie auch noch nicht getestet, aber es scheint, dass smop den einzigen Unterschied hat, vom ursprünglichen Entwickler auf Github mit einer Testsuite aktiv gewartet zu werden.
Andrew Wagner
Welches ist das schnellste, um Matlab-Funktionen aus den Methoden zum Einrichten einer Schnittstelle aufzurufen?
Viktor Tóth