Un outil pour convertir du code MATLAB en Python [fermé]

150

J'ai un tas de code MATLAB de ma thèse MS que je veux maintenant convertir en Python (en utilisant numpy / scipy et matplotlib) et distribuer en open-source. Je connais la similitude entre les bibliothèques scientifiques MATLAB et Python, et les convertir manuellement ne prendra pas plus de quinze jours (à condition que j'y travaille tous les jours pendant un certain temps). Je me demandais s'il y avait déjà un outil disponible qui puisse faire la conversion.

Homme à tout faire
la source
7
une autre possibilité est de publier votre code source tel quel, et de le tester dans Octave (www.gnu.org/software/octave) qui a 99% de compétitivité matlab.
Oz123
2
@josliber: Pouvons-nous déplacer cette question vers softwarerecs.stackexchange.com afin qu'elle puisse être rouverte?
Anderson Green
@andersongreen la question est trop ancienne pour la migration
josliber
1
Je pense que maintenant, la meilleure façon de faire est d'utiliser l'outil intégré matlab mcc
R3m

Réponses:

157

Il existe plusieurs outils pour convertir Matlab en code Python.

Le seul qui a connu une activité récente (dernier commit de juin 2018) est le compilateur S mall M atlab t o P ython (également développé ici: SMOP @ chiselapp ).

D'autres options incluent:

  • LiberMate : traduction de Matlab vers Python et SciPy (nécessite Python 2, dernière mise à jour il y a 4 ans).
  • OMPC : Matlab vers Python (un peu dépassé).

Aussi, pour ceux qui s'intéressent à une interface entre les deux langues et non à la conversion:

  • pymatlab: communiquez depuis Python en envoyant des données à l'espace de travail MATLAB, en les exploitant avec des scripts et en récupérant les données résultantes.
  • Trous de ver Python-Matlab : prise en charge des deux sens d'interaction.
  • Pont Python-Matlab : utilisez Matlab depuis Python, propose matlab_magic pour iPython, pour exécuter du code matlab normal depuis ipython.
  • PyMat : contrôle la session Matlab depuis Python.
  • pymat2: suite du PyMat apparemment abandonné.
  • mlabwrap, mlabwrap-purepy : donne à Matlab l'apparence de la bibliothèque Python (basée sur PyMat).
  • oct2py: exécutez les commandes GNU Octave depuis Python.
  • pymex: Intègre l'interpréteur Python dans Matlab, également sur File Exchange .
  • matpy: Accédez à MATLAB de différentes manières: création de variables, accès aux fichiers .mat, interface directe avec le moteur MATLAB (nécessite l'installation de MATLAB).
  • MatPy : package Python pour l'algèbre linéaire numérique et le traçage avec une interface de type MatLab.

Btw peut être utile de chercher ici d'autres conseils de migration:

Sur une note différente, même si je ne suis pas du tout fortranfan, pour les personnes qui pourraient le trouver utile, il y a:

Ioannis Filippidis
la source
2
Quelqu'un at-il un commentaire sur lequel de ces cas fonctionne le mieux ou quels cas échouent?
Chogg
8
Je ne les ai pas encore testés non plus, mais il semble que smop ait la seule particularité d'être activement maintenu, par le développeur d'origine, sur github, avec une suite de tests.
Andrew Wagner
lequel est le plus rapide pour appeler les fonctions matlab parmi les méthodes établissant une interface?
Viktor Tóth