Uno strumento per convertire il codice MATLAB in Python [chiuso]


150

Ho un sacco di codice MATLAB dalla mia tesi sulla MS che ora voglio convertire in Python (usando numpy / scipy e matplotlib) e distribuirlo come open-source. Conosco la somiglianza tra le librerie scientifiche MATLAB e Python e convertirle manualmente non sarà più di una quindicina di giorni (a condizione che ci lavori ogni giorno per un po 'di tempo). Mi chiedevo se fosse già disponibile uno strumento che potesse fare la conversione.


7
un'altra possibilità è quella di rilasciare il codice sorgente così com'è e testarlo in Octave (www.gnu.org/software/octave) che ha il 99% di competenza matlab.
Oz123,

2
@josliber: possiamo spostare questa domanda su softwarerecs.stackexchange.com in modo che possa essere riaperta?
Anderson Verde

@andersongreen la domanda è troppo vecchia per la migrazione
josliber

1
Penso che ora il modo migliore per farlo sia usare lo strumento incorporato matlab mcc
R3m

Risposte:


157

Esistono diversi strumenti per convertire Matlab in codice Python.

L'unico che ha visto l'attività recente (ultimo commit da giugno 2018) è S mall M ATLab t o P ython compilatore (sviluppato anche qui: SMOP @ chiselapp ).

Altre opzioni includono:

  • LiberMate : traduci da Matlab a Python e SciPy (richiede Python 2, ultimo aggiornamento 4 anni fa).
  • OMPC : Matlab a Python (un po 'obsoleto).

Inoltre, per coloro che sono interessati a un'interfaccia tra le due lingue e non alla conversione:

  • pymatlab: comunica da Python inviando i dati allo spazio di lavoro MATLAB, operando su di essi con script e recuperando i dati risultanti.
  • Wormhole Python-Matlab : entrambe le direzioni di interazione supportate.
  • Python-Matlab bridge : usa Matlab da Python, offre matlab_magic per iPython, per eseguire il normale codice matlab da ipython.
  • PyMat : controlla la sessione Matlab da Python.
  • pymat2: seguito del PyMat apparentemente abbandonato.
  • mlabwrap, mlabwrap-purepy : rende Matlab simile alla libreria Python (basata su PyMat).
  • oct2py: esegue i comandi GNU Octave da Python.
  • pymex: Incorpora l'interprete Python in Matlab, anche in Scambio file .
  • matpy: Accedi a MATLAB in vari modi: crea variabili, accedi a file .mat, interfaccia diretta al motore MATLAB (richiede l'installazione di MATLAB).
  • MatPy : pacchetto Python per algebra lineare numerica e disegno con un'interfaccia simile a MatLab.

A proposito, potrebbe essere utile cercare altri suggerimenti sulla migrazione:

In una nota diversa, anche se non sono affatto un fortranfan, per le persone che potrebbero trovarlo utile c'è:


2
Qualcuno ha un commento su quale di questi funziona meglio o su quali casi falliscono?
Chogg,

8
Non li ho ancora testati, ma sembra che smop abbia la sola distinzione di essere attivamente mantenuto, dallo sviluppatore originale, su github, con una suite di test.
Andrew Wagner,

qual è il più veloce per chiamare le funzioni matlab dai metodi che stabiliscono un'interfaccia?
Viktor Tóth,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.