Sono di fronte a un problema nell'esecuzione del codice MATLAB da Java. Se sai qualcosa su questo, potresti aiutarmi per favore?Come eseguire il codice MATLAB da Java?
risposta
Ecco un pacchetto che consente di deploy MATLAB code as java classes.
Ci sono 2 modi per fare questo:
- utilizzare il motore di Matlab, che ha un'interfaccia C (vedi il link della prima risposta per questo). È obbligatorio avere Matlab installato su tutte le macchine su cui si desidera eseguire questa operazione (vedere la licenza Matlab per i dettagli)
- Utilizzare Matlab Builder per Java che compila il codice MATLAB e produce direttamente un'interfaccia Java delle funzioni. Con questa soluzione, è necessario il compilatore Matlab e Matlab Builder per Java, ma è possibile quindi distribuire la soluzione senza pagare di più. Si noti che è necessario installare Matlab Compiler Runtime (MCR) su ciascuna macchina, ma questo è gratuito.
Se non si desidera acquistare di MathWork MATLAB Builder for Java Toolbox, è possibile utilizzare non documentata JMI di MATLAB (Java-MATLAB Interface). Cerca nel newsgroup CSSM (o Google) per JMI o JMatLink basato su JMI. Il codice MATLAB è pieno di esempi di utilizzo di JMI - cerca "jmi" usando lo strumento di ricerca dell'editor MATLAB sull'intera installazione di MATLAB.
Si noti che JMI non è né documentato né ufficialmente supportato da MathWorks. Inoltre, se utilizzato in modo improprio, può bloccare o bloccare la tua applicazione. Ma è gratuito, a differenza della cassetta degli attrezzi.
Invece di utilizzare JMI non documentato (Java MATLAB Interface) menzionato da Yair, è possibile utilizzare matlabcontrol che è un'API Java che si avvolge attorno a JMI che lo rende molto più facile da usare. È ben documentato e ha una introduzione walkthrough. A differenza dell'utilizzo diretto di JMI, può essere utilizzato anche quando si esegue un programma Java all'esterno di MATLAB.
Ho utilizzato Java Builder per l'esecuzione di script/funzioni MATLAB in applicazioni java e sembra essere molto semplice e utile.
Per questo scopo, è necessario disporre di strumenti Java JA toolbox per distribuire lo script/funzione matlab come classe java.
È quindi necessario aggiungere la classe java (convertita) alla libreria del progetto java e in aggiunta il file jar javabuilder.
Dopo aver eseguito i passaggi precedenti, è possibile eseguire facilmente lo script matlab (che ora è una classe java nella libreria del progetto) semplicemente chiamando il nome della classe nel codice. Se la classe è una funzione MATLAB, è possibile passare i paramenter e ottenere facilmente i valori di ritorno.
Ma non è l'unico modo per farlo. Ma questo mi sembra relativamente facile.
Spero che questo risponda alla tua domanda.