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

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

  • MATLAB engine.start_matlab Запустите сеанс работы с MATLAB синхронно.

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

Необходимо всегда отключать, сеанс работы с MATLAB с помощью одного из методов в закрыли Сеанс MATLAB Engine.

Запуск 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();
    }
}

Запущение двигателя с опциями запуска

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

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 останавливается, когда нет никаких других связей.

разъединитесь, disconnectAsync

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

выйдите, quitAsync

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

Смотрите также

Похожие темы