Quelqu'un a-t-il de l'expérience dans la création d'une bibliothèque partagée dans MATLAB ?

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

Ai-je le bon forfait ? Quelqu'un d'autre a-t-il fait quelque chose de similaire? Pouvez-vous me faire savoir s'il y a des pièges sérieux dont je ne suis pas conscient pour le moment ?

请先 登录 后评论

3 réponses

Michal Sznajder

Je n'aiderai pas beaucoup, mais je me souviens que j'ai pu encapsuler une simulation MATLAB dans une DLL, puis l'appeler à partir d'une application Delphi. Cela a très bien fonctionné.

请先 登录 后评论
Eli Bendersky

J'essaierais aussi les ctypes en premier.

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

L'étape la plus difficile est probablement la 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.

请先 登录 后评论
Dima

Une chose à retenir est que le compilateur Matlab ne compile pas réellement le code Matlab en instructions machine natives. Il l'intègre simplement dans un exécutable autonome ou une bibliothèque avec son propre moteur d'exécution qui l'exécute. Vous seriez capable d'exécuter votre code sans Matlab installé, et vous seriez capable de l'interfacer avec d'autres langages, mais il sera toujours interprété du code Matlab, donc il n'y aura pas d'accélération.

请先 登录 后评论