2011-10-11 12 views
5

Ho bisogno di convertire alcuni codici MATLAB in C++. Sto usando Visual Studio 2010 e ho installato il compilatore MATLAB. Mi chiedo come faccio a fare questo.Conversione da Matlab a C++

Inoltre, quando pubblico il mio progetto, l'utente finale deve installare qualcosa da MATLAB? (questo non può essere il caso)

risposta

3

È possibile eseguire compile Matlab scripts in file eseguibili autonomi, ma non ho familiarità con uno strumento Matlab per convertire il codice Matlab in codice Visual C++. È possibile possibile convertire il codice Matlab in C o C++ utilizzando Simulink Coder (in precedenza Real-Time Workshop), disponibile da Mathworks come prodotto separato.

Per eseguire l'eseguibile standalone, l'utente dovrà installare Matlab Compiler Runtime. Dal Matlab Compiler web page:

eseguibili e le librerie create con il prodotto MATLAB Compiler utilizzare un motore di runtime chiamato il MATLAB Compiler Runtime (MCR). L'MCR è fornito con Compilatore MATLAB per la distribuzione con la tua applicazione e può essere distribuito senza royalty.

+0

Un lungo, molto tempo fa, il compilatore MATLAB utilizzato per tradurre il codice MATLAB in C, ma non lo ha fatto per un po 'di tempo. Al giorno d'oggi, converte solo i file di origine MATLAB (* .m) in un formato offuscato, pre-analizzato (.p), impacchettato in modo che possa essere eseguito come eseguibile standalone o chiamato da un altro programma. In entrambi i casi, il computer di destinazione su cui deve essere eseguito dovrà aver installato l'MCR dalla versione di MATLAB rispetto alla quale è stata sviluppata l'applicazione. –

+1

"ma non credo ci sia uno strumento Matlab per convertire il codice Matlab in codice C++ o Visual C++" -Misinformation: esiste uno strumento Matlab chiamato officina in tempo reale. Tuttavia, questo è un prodotto separato per il compilatore Matlab e richiede una licenza diversa. – learnvst

+1

@learnvst - grazie per il commento, ho aggiornato la risposta. – eykanal

0

Un'altra opzione è usare lo MATLAB Engine. Probabilmente non è un'opzione per le applicazioni in tempo reale, ma per il resto è davvero bello. Fondamentalmente chiamate le funzioni MATLAB direttamente dal C++. Le figure (grafici) verranno visualizzate proprio come se si stesse eseguendo il MATLAB locale. All'avvio del programma, viene creata una console MATLAB.

2

Non ti libererai dei tempi di Matlab. Ho avuto spesso problemi con Matlab Compiler. Fondamentalmente è come un wrapper attorno al runtime Matlab, genera codice maldestro e ha introdotto molti problemi per l'implementazione. Alternative C ...? Non sono riuscito a trovarne. Così di recente sono passato a ilnumerics, che è come Matlab in C# - solo molto più veloce e nessuna traduzione necessaria. funziona fino ad ora perché usiamo comunque ASP.NET e quindi salviamo il salto da una lingua all'altra e possiamo usare direttamente i diagrammi 3d di ilnumerics.