Von matlab zu python
-
- User
- Beiträge: 1
- Registriert: Montag 18. Dezember 2017, 16:57
Ich habe einen Matlab code den ich in python umwandeln möchte. Gibt es eine Möglichkeit das ohne smop machen kann. Der Code ist zu lang, um es mit einem online converter zu convertieren
@tomatensalat: ein Konverter wird kaum ideomatisches Python erzeugen können. Typisches vorgehen ist, genug Testcases für jede Matlab-Funktion zu schreiben, um sicher zu sein, dass das konvertierte Python die selben Ergebnisse liefert. Meist sind die beiden Welten aber so weit auseinander, dass man quasi nur den Algorithmus kopieren kann, nicht aber den Code an sich.
`smop` ist ja kein Onlinekonverter, daher versteh ich die Frage auch nicht ganz.
`smop` ist ja kein Onlinekonverter, daher versteh ich die Frage auch nicht ganz.
Numpy, Scipy und Matplotlib sind Python Bibliotheken die der Matlab Syntax mit viele Liebe zum Detail nachempfunden sind:tomatensalat hat geschrieben:Ich habe einen Matlab code den ich in python umwandeln möchte. Gibt es eine Möglichkeit das ohne smop machen kann. Der Code ist zu lang, um es mit einem online converter zu convertieren
- Die Slicing-Syntax ist gleich: z.B. a[:, 2:5] gibt alle Zeilen und die Spalten 3 bis 5.
- Sehr viele Funktionen haben die gleichen Namen und die gleiche Funktionsweise, z.B. linspace, subplot(211)
- Es gibt keinen Simulink Ersatz in Python.
- Der Array-Zugriff erfolgt über eckige Klammern [] und nicht über Runde Klammern ()
- Viele Funktionen aus den Matlab-Toolboxen fehlen
- Array-indizes sind in Matlab (glaube ich) 1-basiert, in Python sind sie 0-basiert
@MagBen: die Slicing-Syntax unterscheidet sich fundamental. start:schritt:ende_inklusive bei Matlab und start:ende_exclusive:schritt bei Python. Indizierung ab 1 bei Matlab, 0 bei Python. Matlab hat bei allem call-by-value, Python call-by-object. Matlab hat dynamische Arrays, Numpy statische. Viele Funktionen arbeiten subtil anders. All diese Punkte machen es sehr schwer, komplexere Matlabskripte in Pythonprogramme zu überführen.