Можно передать переменные Java® MATLAB® с помощью этих методов:
Передайте переменные как аргументы функции в вызовах feval MatlabEngine и методов fevalAsync. Переменные, переданные в качестве аргументов к вызовам функции, не хранятся в базовом рабочем пространстве MATLAB.
Поместите переменные в базовое рабочее пространство MATLAB с помощью putVairable MatlabEngine и методов putVariableAsync.
Для получения информации о преобразованиях типов смотрите Преобразования типов данных Java.
Этот пример кода передает коэффициенты полинома, , к функции roots MATLAB.
Задайте двойной массив p, чтобы передать в качестве аргумента для функции roots MATLAB.
Задайте двойной массив 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 функции complex MATLAB. Списки команд who MATLAB переменные рабочей области.
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();
}
}