Qualcuno ha esperienza nella creazione di una libreria condivisa in MATLAB?

voti
9

Un ricercatore ha creato un piccolo simulazione in MATLAB e vogliamo renderlo accessibile agli altri. Il mio piano è quello di prendere la simulazione, ripulire alcune cose e di trasformarlo in un insieme di funzioni. Poi ho intenzione di compilarlo in una libreria C e utilizzare SWIG per creare un wrapper Python. A quel punto dovrei essere in grado di chiamare la simulazione da un piccolo Django app. Almeno lo spero.

Devo il piano giusto? Qualcun altro ha fatto qualcosa di simile? Può farmi sapere se ci sono delle insidie ​​gravi che io non sono a conoscenza di in questo momento?

È pubblicato 07/08/2008 alle 17:47
fonte dall'utente
In altre lingue...                            


4 risposte

voti
3

Io non aiuterà molto, ma mi ricordo che ero in grado di avvolgere una simulazione MATLAB in DLL e quindi chiamare da un'applicazione Delphi. Ha funzionato molto bene.

Risposto il 07/08/2008 a 19:57
fonte dall'utente

voti
1

Forse provare ctypes invece di SWIG. Se è stata inclusa come parte di Python 2.5, allora deve essere buono :-)

Risposto il 19/08/2008 a 12:51
fonte dall'utente

voti
2

Mi piacerebbe anche provare ctypes prima.

  1. Utilizzare il compilatore Matlab per compilare il codice in C.
  2. Compilare il codice C in una DLL.
  3. Utilizzare ctypes per caricare e chiamare il codice da questa DLL

Il passo più difficile è probabilmente 1, ma se si conosce già Matlab e hanno utilizzato il compilatore Matlab, non dovrebbe avere gravi problemi con esso.

Risposto il 26/09/2008 a 08:55
fonte dall'utente

voti
5

Una cosa da ricordare è che il compilatore Matlab in realtà non compilare il codice Matlab in istruzioni macchina native. Si avvolge semplicemente in un eseguibile standalone o una libreria con un proprio motore di runtime che lo gestisce. Si sarebbe in grado di eseguire il codice senza installato Matlab, e si sarebbe in grado di interfacciarsi con altre lingue, ma sarà ancora interpretato codice Matlab, quindi non ci sarebbe alcun aumento di velocità.

Risposto il 02/11/2009 a 02:43
fonte dall'utente

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