Call Back into MATLAB from Java
A Java® application designed for use inside of a MATLAB® program can call back into the MATLAB code using the getCurrentMatlab method in the
com.mathworks.engine.MatlabEngine
API. For information about using this API,
see MATLAB Engine API for Java.
For example, the code in this Java class ExampleClass
creates a method
fevalExample
to call the MATLAB
sqrt
function. This method is part of a larger application which might
read data from a device and then apply the MATLAB function on the data. In the fevalExample
method, connect to
MATLAB using getCurrentMatlab
. The application manages the data
between the device and the MATLAB calculation. MATLAB users call the fevalExample
function to bring the data into
MATLAB for further action.
import com.mathworks.engine.*; public class ExampleClass { private MatlabEngine engine; public double fevalExample() throws Exception { engine = MatlabEngine.getCurrentMatlab(); double sqrtOut = engine.feval("sqrt", 4.0); engine.close(); return sqrtOut; } }
To call fevalExample
from MATLAB, add ExampleClass
to the Java class path. This example assumes that the file is in your current folder. Create
MATLAB object javaTest
and call its fevalExample
function. The result
is the value returned by
sqrt
.
javaaddpath(pwd) javaTest = ExampleClass; result = javaTest.fevalExample()
result = 2.0
Note
Programs using the getCurrentMatlab
method are supported on the
MATLAB thread only. If you call this functionality from an engine application,
MATLAB displays an error.
See Also
com.mathworks.engine.MatlabEngine
| getCurrentMatlab