Вы можете пройти Java® переменные в MATLAB® используя следующие методы:
Передайте переменные как аргументы функции в вызовах к MatlabEngine
feval
и fevalAsync
методы. Переменные, переданные в качестве аргументов в вызовы функций, не хранятся в базовом рабочем пространстве MATLAB.
Поместите переменные в базовом рабочем пространстве MATLAB с помощью MatlabEngine
putVairable
и putVariableAsync
методы.
Для получения информации о преобразованиях типов см. раздел «Преобразования типов данных Java».
Этот пример кода пропускает коэффициенты полинома, , в MATLAB roots
функция.
Задайте p
двойного массива для передачи в качестве аргумента для MATLAB
roots
функция.
Задайте r
двойного массива для принятия возвращенных значений.
import com.mathworks.engine.*; public class javaPassArg{ public static void main(String[] args) throws Exception{ MatlabEngine eng = MatlabEngine.startMatlab(); double[] p = {1.0, -1.0, -6.0}; double[] r = eng.feval("roots", p); for (double e: r) { System.out.println(e); } eng.close(); } }
Этот пример кода помещает переменные в рабочее пространство MATLAB и использует эти переменные в качестве аргументов в вызове MATLAB в MATLAB complex
функция. MATLAB who
команда приводит список переменных рабочей области.
import com.mathworks.engine.*; import java.util.Arrays; public class javaPutVar { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); eng.putVariable("x", 7.0); eng.putVariable("y", 3.0); eng.eval("z = complex(x, y);"); String[] w = eng.feval("who"); System.out.println("MATLAB workspace variables " + Arrays.toString(w)); eng.close(); } }