Оценка операторов MATLAB из Java

Оценка операторов MATLAB

Можно оценить операторы MATLAB® от Java® с помощью eval MatlabEngine и методов evalAsync. Эти методы подобны функции eval MATLAB. Однако eval и методы evalAsync не возвращают результаты оценки выражения MATLAB.

Можно также использовать feval MatlabEngine и методы fevalAsync, чтобы вызвать функции MATLAB. Эти методы позволяют вам передать переменные рабочему пространству MATLAB и возвращаемые значения на Java.

Входные параметры, названные в строке, должны существовать в рабочем пространстве MATLAB. Можно присвоить результаты оценки к переменным в строке оператора. Имена переменных, которые вы присваиваете в операторе, создаются в базовом рабочем пространстве MATLAB. MATLAB не требует, чтобы вы инициализировали переменные, созданные в выражении.

Чтобы возвратить переменные, созданные в рабочем пространстве MATLAB, используйте getVariable MatlabEngine или методы getVariableAsync.

Выполнение математической функции в MATLAB

Этот пример кода выполняет математическую функцию по заданной области с помощью двух выражений MATLAB. Функция meshgrid создает переменные MATLAB X, Y и Z в рабочем пространстве MATLAB. Эти переменные используются математическим выражением в следующем вызове evalAsync.

Метод getVariable MatlabEngine возвращает результат оценки на 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();
        }
}

Похожие темы