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 и передачах это к MATLAB real функция. Эта функция возвращает действительную часть комплексного числа. Значение, возвращенное 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();
}
}