Quiero que el programa Matlab llame a un archivo java, preferiblemente con un ejemplo.¿Llamar a Java desde MATLAB?
Respuesta
Ok, intentaré dar un pequeño ejemplo aquí. Utilice las funciones de Java directamente desde la ventana de Matlab como lo sugiere zellus, o, si es necesario, cree su propia clase de Java. Aquí hay un ejemplo:
package testMatlabInterface;
public class TestFunction
{
private double value;
public TestFunction()
{
value = 0;
}
public double Add(double v)
{
value += v;
return value;
}
}
Luego, conviértalo en un archivo jar. Suponiendo que usted pone el archivo en una carpeta llamada testMatlabInterface
, ejecute este comando en la línea de comandos:
jar cvf testMatlab.jar testMatlabInterface
Luego, en Matlab, vaya al directorio donde se encuentra el archivo de testMatlab.jar
y ejecutar el comando, import testMatlabInterface.*
a importar todos las clases en el paquete testMatlabInterface
. Entonces puede usar la clase de este modo:
>> methodsview testMatlabInterface.TestFunction
>> me = testMatlabInterface.TestFunction()
me =
[email protected]
>> me.Add(10)
ans =
10
>> me.Add(10)
ans =
20
>> me.Add(10)
ans =
30
Avísame si puedo ser de más ayuda.
¡Muchas gracias! Tu publicación ha sido muy útil. –
Hay tres casos a considerar.
bibliotecas integradas de Java.
Es decir, cualquier cosa que se describa here. Estos artículos simplemente pueden ser llamados directamente. Por ejemplo:
map = java.util.HashMap; map.put(1,10); map.put(2,30); map.get(1) %returns 10
La única complicación es la asignación que Matlab realiza entre los tipos de datos Matlab y los tipos de datos Java. Estas asignaciones se describen here (Matlab to Java) y here (Java to Matlab). (Tl; dr: por lo general las asignaciones son como era de esperar)
precompilados archivos * .jar
primero tiene que añadir estos a la ruta de clase java de Matlab. Usted puede hacer esto de forma dinámica (es decir, de sesión por Matlab, sin necesidad de estado de Matlab), de la siguiente manera:
javaaddpath('c:\full\path\to\compiledjarfile.jar')
También puede agregar estos estáticamente mediante la edición del archivo classpath.txt. Para más información, use
docsearch java class path
.Precompilados * archivos de clase.
Estos son similares al archivo * .jar, excepto que necesita agregar el directorio que contiene el archivo de clase, en lugar de los archivos de clase. Por ejemplo:
javaaddpath('c:\full\path\to\directory\containing\class\files\') %NOT THIS: javaaddpath('c:\full\path\to\directory\containing\class\files\classname.class')
Muchas gracias. ¡Tu guía realmente ayudó! –
clase no encontrada excepción, aunque he agregado la ruta – zinking
@zinking, asegúrese de que al compilar sus clases Java, se dirige a una versión de JRE al menos tan antigua como la que se envía con la versión de MATLAB que está utilizando. Si sus archivos de clase tienen un número de versión más nuevo que el admitido por el JRE de MATLAB, no se cargarán y obtendrá una excepción ClassNotFoundException cuando intente usarlos. Por ejemplo, R2006b se envía con JRE5, por lo que debe usar 'javac --source 1.5 --target 1.5
- 1. Llamar a una función MATLAB desde C#
- 2. llamar a Java desde PHP
- 3. llamar a Java desde Clojure
- 4. Llamar a Java desde Python
- 5. Llamar a la función de Matlab desde python
- 6. Cómo llamar a las funciones de Matlab desde C++
- 7. ¿Cómo llamar a C++ desde Java?
- 8. Llamar a una clase java desde perl
- 9. ¿Cómo puedo llamar a Perl desde Java?
- 10. Llamar a clases Java desde IzPack
- 11. Llamar a una subrutina Fortran desde Java
- 12. Llamar a funciones Java desde Clojure
- 13. Cómo llamar a Clojure Macros desde Java?
- 14. Llamar a cualquier método Java desde C#
- 15. llamar a Java desde PHP exec
- 16. Llamar a la función calllab/function handle de matlab desde Java
- 17. Ejecutando la función MATLAB desde Java
- 18. Conectando a MongoDB desde MATLAB
- 19. ¿Cómo acceder a una función de matlab desde código java?
- 20. Llamar a .jar desde ColdFusion
- 21. ¿Cómo ejecutar código MATLAB desde Java?
- 22. Cómo llamar al código de MATLAB desde C?
- 23. ¿Llamar a Python en Java?
- 24. Llamar a la biblioteca Java desde Objective C en Mac
- 25. ¿Cómo llamar a la función Java de GWT desde Javascript?
- 26. Llamar a comandos SVN desde un programa java
- 27. Cómo llamar a la funcionalidad C++ desde java
- 28. ¿Puedes llamar a las clases JRuby compiladas desde Java?
- 29. Rhino: Cómo llamar a la función JS desde Java
- 30. Cómo llamar a una función variadica de Clojure desde Java
lea la documentación. [Uso de las bibliotecas de Java de MATLAB] (http://www.mathworks.ch/help/techdoc/matlab_external/f44062.html) – zellus