exponenta event banner

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

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

  • MatlabEngine.startMatlab - Синхронный запуск сеанса MATLAB.

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

Сеанс MATLAB всегда должен завершаться одним из методов в окне Закрыть сеанс MATLAB Engine (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();
    }
}

Запуск ядра с параметрами запуска

Параметры запуска 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

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

МетодЦель

закрыть

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

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

отключить, disconnectAsync

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

оставленный, quitAsync

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

См. также

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