Quelqu'un at-il expérience dans la création d'une bibliothèque partagée dans Matlab?

voix
9

Un chercheur a créé une petite simulation dans MATLAB et nous voulons le rendre accessible aux autres. Mon plan est de prendre la simulation, nettoyer quelques petites choses et la transformer en un ensemble de fonctions. Ensuite, je prévois de le compiler dans une bibliothèque C et utiliser SWIG pour créer un wrapper Python. À ce moment-là, je devrais être en mesure d'appeler la simulation à partir d'une petite application Django. Du moins je l'espère.

Ai-je le bon plan? Est-ce que quelqu'un d'autre fait quelque chose de semblable? Pouvez-vous me faire savoir s'il y a des pièges graves que je ne suis pas au courant de ce moment?

Créé 07/08/2008 à 17:47
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
3

Je ne vais pas aider beaucoup mais je me souviens que j'ai pu envelopper une simulation dans MATLAB DLL, puis appeler à partir d'une application Delphi. Il a très bien fonctionné.

Créé 07/08/2008 à 19:57
source utilisateur

voix
1

Peut-être essayer ctypes au lieu de SWIG. Si elle a été incluse comme une partie de Python 2.5, alors il doit être bon :-)

Créé 19/08/2008 à 12:51
source utilisateur

voix
2

Je voudrais aussi essayer ctypes d'abord.

  1. Utiliser le compilateur Matlab pour compiler le code en C.
  2. Compiler le code C dans une DLL.
  3. Utilisez ctypes pour charger et appeler le code de cette DLL

Le plus dur est probablement étape 1, mais si vous connaissez déjà Matlab et avez utilisé le compilateur Matlab, vous ne devriez pas avoir de sérieux problèmes avec elle.

Créé 26/09/2008 à 08:55
source utilisateur

voix
5

Une chose à retenir est que le compilateur Matlab ne compile pas réellement le code Matlab en instructions machine natives. Il consiste simplement à insérer dans un exécutable autonome ou une bibliothèque avec son propre moteur d'exécution qui l'exécute. Vous seriez en mesure d'exécuter votre code sans Matlab installé, et vous pourrez l'interfacer avec d'autres langues, mais il sera toujours interprété le code Matlab, donc il n'y aurait pas de gain de vitesse.

Créé 02/11/2009 à 02:43
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more