2009-10-03 20 views
11

Ho alcuni code che traccia triangoli in MATLAB.Come chiamare il codice MATLAB da C?

Devo essere in grado di eseguire in qualche modo questo codice dal mio programma C che genera questi punti.

È possibile? Come può essere fatto?

Solo un pensiero: Posso in qualche modo incorporare codice MATLAB in C, in modo che possa compilare su un compilatore C?

risposta

8

Come menzionato in precedenza dai risponditori, è possibile chiamare una copia live di MATLAB da C tramite l'interfaccia MATLAB Engine.

Se il prodotto finale deve essere utilizzato in assenza di una copia live di MATLAB, è possibile distribuire l'applicazione utilizzando MATLAB Compiler. Tuttavia, il Compilatore di MATLAB non, come suggerito da un'altra risposta, converte i programmi MATLAB in codice C (e non lo ha fatto per alcune versioni ora). Invece, archivia e crittografa il tuo programma MATLAB e lo impacchetta in una libreria eseguibile o condivisa che viene eseguita con MATLAB Compiler Runtime (condivisibile senza royalty). La libreria eseguibile o condivisa può quindi essere chiamato da C.

In alternativa si potrebbe andare il contrario, e chiamare il codice C da MATLAB, utilizzando loadlibrary o MATLAB di MEX interface.

Aggiornamento: A partire dalla versione R2011a, è anche possibile utilizzare MATLAB Coder per generare codice C direttamente da un sottoinsieme del linguaggio MATLAB.

+0

ho collegato al prodotto sbagliato - la generazione di codice C da Matlab è abbastanza fondamentale per come viene usato in molte industrie. –

+0

Sì: se si desidera generare codice C da MATLAB per applicazioni incorporate, è possibile farlo utilizzando il comando emlc. Ciò richiede che tu abbia anche Simulink e Real-Time Workshop, sebbene (non MATLAB Compiler), e che sembra eccessivo per tracciare punti di un triangolo :) Aggiornamento –

+0

: MathWorks ora ha un nuovo prodotto: [Codificatore MATLAB] (http://www.mathworks.com/products/matlab-coder/) – Amro