Можно проанализировать операторы 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.
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();
}
}