Запуск и закрытие сеанса работы с MATLAB из Java

Можно запустить MATLAB® сеанс с вашего Java® программа синхронно или асинхронно. Используйте эти MatlabEngine static методы запуска MATLAB:

  • MatlabEngine.startMatlab - Запуск сеанса работы с MATLAB синхронно.

  • MatlabEngine.startMatlabAsync - Запуск сеанса работы с MATLAB асинхронно.

Вы всегда должны прекратить сеанс работы с MATLAB с помощью одного из методов в Close MATLAB Engine Session.

Синхронный запуск MATLAB

Запустите MATLAB с Java синхронно.

import  com.mathworks.engine.*;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        MatlabEngine eng = MatlabEngine.startMatlab();
        ...
        eng.close();
    }
}

Запуск MATLAB асинхронно

Запустите MATLAB с Java асинхронно. Используйте get метод возвращенного Future объект, чтобы дождаться возврата MatlabEngine объект.

import  com.mathworks.engine.*;
import java.util.concurrent.Future;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        Future<MatlabEngine> engFuture = MatlabEngine.startMatlabAsync();
        //Do work while MATLAB engine starts
        ...
        MatlabEngine eng = engFuture.get();
        ...
        eng.close();
    }
}

Запуск Engine с опциями запуска

Можно задать опции запуска MATLAB, когда вы запускаете сеанс работы с MATLAB. Для получения информации об опциях запуска MATLAB, см. «Обычно используемые опции запуска».

The MatlabEngine.startMatlab и MatlabEngine.startMatlabAsync методы принимают строковые массивы как вход.

Запустите двигатель синхронно с опциями запуска MATLAB.

import  com.mathworks.engine.*;

public class StartMatlab {
    String[] options = {"-noFigureWindows", "-r", "cd H:"};
    public static void main(String[] args) throws Exception {
        MatlabEngine eng = MatlabEngine.startMatlab(options);
        ...
        eng.close();
    }
}

Запустите двигатель асинхронно с опциями запуска MATLAB.

import  com.mathworks.engine.*;
import java.util.concurrent.Future;

public class StartMatlab {
    public static void main(String[] args) throws Exception {
        String[] options = {"-noFigureWindows", "-r", "cd H:"};
        Future<MatlabEngine> engFuture = MatlabEngine.startMatlabAsync(options);
        ...
        MatlabEngine eng = engFuture.get();
        ...
        eng.close();
    }
}

Закройте сеанс MATLAB Engine

Чтобы завершить сеанс движка MATLAB, используйте одно из следующих MatlabEngine методы:

МетодЦель

закрыть

Если процесс Java запускает Сеанс работы с MATLAB как несеанс совместной работы по умолчанию, close() завершает MATLAB.

Если сеанс работы с MATLAB является сеансом совместной работы, close() отключает MATLAB от этого процесса Java. MATLAB завершается, когда нет других соединений.

отсоединить, отсоединитьAsync

Отключитесь от текущего сеанса работы с MATLAB синхронно или асинхронно.

выход, quitAsync

Принудительное завершение работы текущего сеанса работы с MATLAB синхронно или асинхронно.

См. также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте