Можно оценить MATLAB® операторы из Java® использование MatlabEngine
eval
и evalAsync
методы. Эти методы аналогичны MATLAB eval
функция. Однако eval
и evalAsync
методы не возвращают результаты оценки выражения MATLAB.
Можно также использовать MatlabEngine
feval
и fevalAsync
методы для вызова функций MATLAB. Эти методы позволяют вам передать переменные в рабочее пространство MATLAB и вернуть значения в Java.
Входные параметры, названные в строке, должны существовать в рабочем пространстве MATLAB. Результаты анализа можно присвоить переменным в строке оператора. Имена переменных, присвоенные в операторе, создаются в базовом рабочем пространстве MATLAB. MATLAB не требует инициализации переменных, созданных в выражении.
Чтобы вернуть переменные, созданные в рабочем пространстве MATLAB, используйте MatlabEngine
getVariable
или getVariableAsync
методы.
Этот пример кода оценивает математическую функцию в заданной области с помощью двух выражений MATLAB. meshgrid
функция создает переменный MATLAB X
, Y
, и Z
в рабочем пространстве MATLAB. Эти переменные используются математическим выражением в следующем вызове evalAsync
.
The MatlabEngine
getVariable
метод возвращает результат оценки на Java.
import com.mathworks.engine.*; public class javaEvalFunc { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); eng.evalAsync("[X, Y] = meshgrid(-2:0.2:2);"); eng.evalAsync("Z = X .* exp(-X.^2 - Y.^2);"); Object[] Z = eng.getVariable("Z"); eng.close(); } }