MATLAB® числовые типы может представлять комплексные числа. API MATLAB Engine поддерживает комплексные переменные в Java® с помощью com.mathworks.matlab.types.Complex
класс. Используя этот класс, вы можете:
Создайте комплексные переменные на Java и передайте эти переменные MATLAB.
Получите комплексные переменные от базового рабочего пространства MATLAB.
MATLAB всегда использует значения двойной точности в действительных и мнимых частях комплексных чисел.
Этот пример кода использует функции MATLAB для:
Используйте getVariable
метод, чтобы возвратить комплексные переменные в Java.
import com.mathworks.engine.*; import com.mathworks.matlab.types.Complex; public class javaGetVar { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); eng.eval("z = roots([1.0, -1.0, 6.0]);"); eng.eval("zc = conj(z);"); eng.eval("rat = z.*zc;"); Complex[] z = eng.getVariable("z"); Complex[] zc = eng.getVariable("zc"); double[] rat = eng.getVariable("rat"); for (Complex e: z) { System.out.println(e); } for (Complex e: zc) { System.out.println(e); } for (double e: rat) { System.out.println(e); } eng.close(); } }
Этот пример кода создает com.mathworks.matlab.types.Complex
переменная на Java и передачах это к real
MATLAB функция. Эта функция возвращает действительную часть комплексного числа. Значение, возвращенное MATLAB, имеет тип
double
даже при том, что исходной переменной, созданной на Java, является int
.
import com.mathworks.engine.*; import com.mathworks.matlab.types.Complex; public class javaComplexVar { public static void main(String[] args) throws Exception { MatlabEngine eng = MatlabEngine.startMatlab(); int r = 8; int i = 3; Complex c = new Complex(r, i); double real = eng.feval("real", c); eng.close(); } }