Una herramienta para convertir código MATLAB a Python [cerrado]

150

Tengo un montón de código MATLAB de mi tesis de MS que ahora quiero convertir a Python (usando numpy / scipy y matplotlib) y distribuir como código abierto. Sé la similitud entre MATLAB y las bibliotecas científicas de Python, y convertirlas manualmente no será más de una quincena (siempre que trabaje para ello todos los días durante algún tiempo). Me preguntaba si ya había alguna herramienta disponible que pueda hacer la conversión.

Un mil usos
fuente
77
Otra posibilidad es liberar su código fuente tal como está y probarlo en Octave (www.gnu.org/software/octave) que tiene un 99% de compatibilidad con Matlab.
Oz123
2
@josliber: ¿Podemos mover esta pregunta a softwarerecs.stackexchange.com para que se pueda volver a abrir?
Anderson Green el
@andersongreen la pregunta es demasiado antigua para la migración
josliber
1
Creo que ahora la mejor manera de hacerlo es usar la herramienta
incorporada de Matlab

Respuestas:

157

Hay varias herramientas para convertir Matlab a código Python.

El único que ha visto actividad reciente (última confirmación a partir de junio 2018) es S centro comercial M MATLAB t O P ython compilador (también desarrollado aquí: SMOP @ chiselapp ).

Otras opciones incluyen:

  • LiberMate : traduce de Matlab a Python y SciPy (Requiere Python 2, última actualización hace 4 años).
  • OMPC : Matlab a Python (un poco desactualizado).

Además, para aquellos interesados ​​en una interfaz entre los dos idiomas y no en la conversión:

  • pymatlab: comunicarse desde Python enviando datos al espacio de trabajo de MATLAB, operando con scripts y retirando los datos resultantes.
  • Agujeros de gusano Python-Matlab : se admiten ambas direcciones de interacción.
  • Puente Python-Matlab : use Matlab desde Python, ofrece matlab_magic para iPython, para ejecutar código normal de matlab desde ipython.
  • PyMat : Controla la sesión de Matlab desde Python.
  • pymat2: continuación del PyMat aparentemente abandonado.
  • mlabwrap, mlabwrap-purepy : hace que Matlab parezca la biblioteca Python (basada en PyMat).
  • oct2py: ejecuta comandos GNU Octave desde Python.
  • pymex: Incrusta el intérprete de Python en Matlab, también en Intercambio de archivos .
  • matpy: Acceda a MATLAB de varias maneras: cree variables, acceda a archivos .mat, interfaz directa al motor de MATLAB (requiere la instalación de MATLAB).
  • MatPy : paquete de Python para álgebra lineal numérica y trazado con una interfaz similar a MatLab.

Por cierto, puede ser útil buscar aquí otros consejos de migración:

En una nota diferente, aunque no soy un fortranfanático en absoluto, para las personas que podrían encontrarlo útil, existe:

Ioannis Filippidis
fuente
2
¿Alguien tiene un comentario sobre cuál de estos funciona mejor o qué casos fallan?
Chogg
8
Tampoco los he probado todavía, pero parece que smop tiene la única distinción de ser mantenido activamente, por el desarrollador original, en github, con un conjunto de pruebas.
Andrew Wagner
¿Cuál es el más rápido para llamar a las funciones de matlab fuera de los métodos que establecen una interfaz?
Viktor Tóth