Передача переменных от Java до MATLAB

Способы передать переменные

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

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

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

Для получения информации о преобразованиях типов смотрите Преобразования типов данных Java.

Передача аргументов функции

Этот пример кода передает коэффициенты многочлена, x2−x−6, к функции 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 Workspace

Этот пример кода помещает переменные в MATLAB workspace и использует те переменные в качестве аргументов в вызове 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();
    }
}

Похожие темы

Была ли эта тема полезной?