exponenta event banner

Передача переменных из Java в MATLAB

Способы передачи переменных

Переменные Java ® можно передать в MATLAB ® с помощью следующих методов:

  • Передайте переменные в качестве аргументов функции в вызовах MatlabEngine feval и fevalAsync методы. Переменные, передаваемые в качестве аргументов вызовам функций, не хранятся в базовой рабочей области MATLAB.

  • Поместите переменные в базовую рабочую область MATLAB с помощью MatlabEngine putVairable и putVariableAsync методы.

Сведения о преобразованиях типов см. в разделе Преобразования типов данных Java.

Аргументы функции передачи

Этот пример кода передает коэффициенты многочлена, x2 x − 6, в MATLABroots функция.

  • Определение двойного массива 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 для 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();
    }
}

Связанные темы