com.mathworks.engine.MatlabEngine

Класс Java, использующий MATLAB как вычислительный движок

Описание

The com.mathworks.engine.MatlabEngine класс использует MATLAB® процесс как вычислительный движок для Java®. Этот класс обеспечивает интерфейс между языком Java и MATLAB, что позволяет вам вычислять функции MATLAB и выражения из Java.

Создание

The MatlabEngine класс предоставляет статические методы для запуска MATLAB и для синхронного или асинхронного подключения к общему сеансу работы с MATLAB. Только эти статические методы могут создать экземпляр этого класса:

  • Запустите MATLAB синхронно - startMatlab

  • Подключиться к общему сеансу работы с MATLAB синхронно - connectMatlab

  • Запустите MATLAB асинхронно - startMatlabAsync

  • Подключиться к общему сеансу работы с MATLAB асинхронно - connectMatlabAsync

Неподдерживаемые опции запуска

Движок не поддерживает следующие опции запуска MATLAB:

  • -h

  • -help

  • -?

  • -n

  • -e

  • -softwareopengl

  • -logfile

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

Сводные данные по методам

Статические методы

startMatlab

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

startMatlabAsync

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

findMatlab

Найти все доступные общие сеансы работы с MATLAB с локальной машины синхронно.

findMatlabAsync

Найти все доступные общие сеансы работы с MATLAB с локальной машины асинхронно.

connectMatlab

Подключитесь к общему сеансу работы с MATLAB на локальной машине синхронно.

connectMatlabAsync

Подключитесь к общему сеансу работы с MATLAB на локальной машине асинхронно.

Переменная представителя

NULL_WRITER

Используйте средство записи, которое игнорирует содержимое из командного окна MATLAB.

Представители

feval

Вычислите функцию MATLAB с аргументами синхронно.

fevalAsync

Вычислите функцию MATLAB с аргументами асинхронно.

eval

Вычислите выражение MATLAB как строку синхронно.

evalAsync

Вычислите выражение MATLAB как строку асинхронно.

getVariable

Получите переменную из базового рабочего пространства MATLAB синхронно.

getVariableAsync

Получите переменную из базового рабочего пространства MATLAB асинхронно.

putVariable

Поместите переменную в базовое рабочее пространство MATLAB синхронно.

putVariableAsync

Поместите переменную в базовое рабочее пространство MATLAB асинхронно.

разъединить

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

disconnectAsync

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

уйти

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

quitAsync

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

закрыть

Отключите или завершите текущий сеанс работы с MATLAB.

Информации о методе

startMatlab

static MatlabEngine startMatlab(String[] options)

static MatlabEngine startMatlab()

Описание

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

Параметры

String[] options

Опции запуска, используемые для запуска движка MATLAB. Можно задать несколько опции запуска. Движок поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в Опции запуска без поддержки. Список опций см. в специфичной для платформы команде matlab (Windows), matlab (macOS), или matlab (Linux).

Возвраты

Образец MatlabEngine

Броски

com.mathworks.engine.EngineException

Не удается запустить MATLAB.

Пример
String[] options = {"-noFigureWindows", "-r", "cd H:"};
MatlabEngine eng = MatlabEngine.startMatlab(options);

startMatlabAsync

static Future<MatlabEngine> startMatlabAsync(String[] options)

static Future<MatlabEngine> startMatlabAsync()

Описание

Запустите MATLAB асинхронно. После запуска MATLAB, отмена будет невозможна.

Параметры

String[] options

Опции запуска, используемые для запуска движка MATLAB. Можно задать несколько опции запуска. Движок поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в Опции запуска без поддержки. Список опций см. в специфичной для платформы команде matlab (Windows), matlab (macOS), или matlab (Linux).

Возвраты

Образец Future<MatlabEngine>

Пример
Future<MatlabEngine> future = MatlabEngine.startMatlabAsync();

findMatlab

static String[] findMatlab()

Описание

Найти все общие сеансы работы с MATLAB на локальной машине синхронно.

Возвраты

Массив имен всех общих сеансов работы с MATLAB на локальном компьютере или пустой вектор, если нет общих сеансов работы с MATLAB, доступных на локальном компьютере.

Броски

com.mathworks.engine.EngineException

Если во время поиска сеансов работы с MATLAB произошел отказ.

Пример
String[] engines = MatlabEngine.findMatlab();

findMatlabAsync

static Future<String[]> findMatlabAsync()

Описание

Найти все общие сеансы работы с MATLAB на локальной машине асинхронно.

Возвраты

Образец Future<String[]>

Пример
Future<String[]> future = MatlabEngine.findMatlabAsync();

connectMatlab

static MatlabEngine connectMatlab(String name)

static MatlabEngine connectMatlab()

Описание

Подключитесь к общему сеансу работы с MATLAB на локальной машине синхронно.

  • Если вы задаете имя общего Сеанса работы с MATLAB, но механизм не может найти сеанса с таким именем, механизм выдает исключение.

  • Если вы не задаете имя и нет доступного общего сеанса работы с MATLAB, механизм запускает новый общий сеанс работы с MATLAB с опциями по умолчанию.

  • Если вы не задаете имя и доступны общие сеансы работы с MATLAB, механизм соединяется с первым доступным сеансом.

Параметры

String name

Имя общего сеанса работы с MATLAB. Используйте findMatlab, чтобы получить имена общих сеансов работы с MATLAB.

Возвраты

Образец MatlabEngine

Броски

com.mathworks.engine.EngineException

MATLAB не удается запустить или подключиться.

Пример
MatlabEngine engine = MatlabEngine.connectMatlab();

connectMatlabAsync

static Future<MatlabEngine> connectMatlabAsync(String name)

static Future<MatlabEngine> connectMatlabAsync

Описание

Подключитесь к общему сеансу работы с MATLAB на локальной машине асинхронно. Поведение совпадает с поведением connectMatlab кроме того, механизм асинхронен. После установления соединения с MATLAB отмена будет отменена.

Параметры

String name

Имя общего сеанса работы с MATLAB.

Возвраты

Образец Future<MatlabEngine>

Пример
Future<MatlabEngine> future = MatlabEngine.connectMatlabAsync();

feval

<T> T feval(int nlhs, String func, Writer output, Writer error, Object… args)

<T> T feval(int nlhs, String func, Object… args)

<T> T feval(String func, Writer output, Writer error, Object… args)

<T> T feval(String func, Object… args)

Описание

Выполняйте функции MATLAB с входными параметрами синхронно.

Параметры

String func

Имя функции MATLAB или скрипта для оценки.

int nlhs

Количество ожидаемых выходов. Значение по умолчанию является 1.

Если nlhs больше 1, возвращенный тип T должен быть <Object[]>.

Если nlhs является 0, возвращенный тип T должен быть <Void> или <?>.

Если nlhs является 1, возвращенный тип T может быть ожидаемым типом или <Object> если тип неизвестен.

Writer output

Поток, используемый для хранения стандартного выхода из функции MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать выход из командного окна MATLAB.

Writer error

Поток, используемый для хранения стандартной ошибки из функции MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать сообщение об ошибке из командного окна MATLAB.

Object... args

Аргументы, которые передаются в функцию MATLAB.

Возвраты

Результат выполнения функции MATLAB

Броски

java.util.concurrent.CancellationException

Оценка функции MATLAB была отменена.

java.lang.InterruptedException

Оценка функции MATLAB была прервана.

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

com.mathworks.engine.MatlabExcecutionException

В функции есть ошибка во время выполнения MATLAB.

com.mathworks.engine.UnsupportedTypeExeption

Существует неподдерживаемый тип данных.

com.mathworks.engine.MatlabSyntaxException

В функции MATLAB имеется синтаксическая ошибка.

Пример
double result = engine.feval("sqrt", 4);

fevalAsync

<T> Future<T> fevalAsync(int nlhs, String func, Writer output, Writer error, Object… args)

<T> Future<T> fevalAsync(int nlhs, String func, Object… args)

<T> Future<T> fevalAsync(String func, Writer output, Writer error, Object… args)

<T> Future<T> fevalAsync(String func, Object… args)

Описание

Вычислите функции MATLAB с входными параметрами асинхронно.

Параметры

String func

Имя функции MATLAB или скрипта для оценки.

int nlhs

Количество ожидаемых выходов. По умолчанию это 1.

Если nlhs больше 1, возвращенный тип T должен быть <Object[]>.

Если nlhs является 0, возвращенный тип T должен быть <Void> или <?>.

Если nlhs является 1, возвращенный тип T может быть ожидаемым типом или <Object> если тип неизвестен.

Writer output

Поток, используемый для хранения стандартного выхода из функции MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать выход из командного окна MATLAB.

Writer error

Поток, используемый для хранения стандартной ошибки из функции MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать сообщение об ошибке из командного окна MATLAB.

Object... args

Аргументы, которые передаются в функцию MATLAB.

Возвраты

Образец Future<T>

Броски

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.
Пример
Future<Double> future = engine.fevalAsync("sqrt", 4);

eval

void eval(String command, Writer output, Writer error)

void eval(String command)

Описание

Рассчитать выражение MATLAB как строку синхронно.

Параметры

String command

Выражение MATLAB для оценки.

Writer output

Поток, используемый для хранения стандартных выходов из выражения MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать выход из командного окна MATLAB.

Writer error

Поток, используемый для хранения стандартной ошибки из выражения MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать сообщение об ошибке из командного окна MATLAB.

Броски

java.util.concurrent.CancellationException

Оценка функции MATLAB была отменена.

java.lang.InterruptedException

Оценка функции MATLAB была прервана.

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

com.mathworks.engine.MatlabExcecutionException

Во время выполнения в выражении MATLAB произошла ошибка.

com.mathworks.engine.MatlabSyntaxException

Синтаксическая ошибка в выражении MATLAB.

Пример
engine.eval("result = sqrt(4)");

evalAsync

Future<Void> evalAsync(String command, Writer output, Writer error)

Future<Void> evalAsync(String command)

Описание

Рассчитать выражение MATLAB как строку асинхронно.

Параметры

String command

Выражение MATLAB для оценки.

Writer output

Поток, используемый для хранения стандартных выходов из выражения MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать выход из командного окна MATLAB.

Writer error

Поток, используемый для хранения стандартной ошибки из выражения MATLAB. Если устройство средства записи не задано, выход записывается в командное окно или терминал. Использование NULL_WRITER чтобы игнорировать сообщение об ошибке из командного окна MATLAB.

Возвраты

Образец Future<Void>

Броски

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

Пример
Future<Void> future = engine.evalAsync("sqrt(4)");

getVariable

<T> T getVariable(String varName)

Описание

Получите переменную из базового рабочего пространства MATLAB.

Параметры

String varName

Имя переменной в базовом рабочем пространстве MATLAB.

Возвраты

Переменная передана из базового рабочего пространства MATLAB

Броски

java.util.concurrent.CancellationException

Оценка этой функции отменена.

java.lang.InterruptedException

Оценка этой функции прерывается.

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

Пример
double myVar = engine.getVariable("myVar");

getVariableAsync

<T> Future<T> getVariableAsync(String varName)

Описание

Получите переменную из базового рабочего пространства MATLAB асинхронно.

Параметры

String varName

Имя переменной в базовом рабочем пространстве MATLAB.

Возвраты

Образец Future<T>

Броски

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

Пример
Future<Double> future = engine.getVariableAsync("myVar");

putVariable

void putVariable(String varName, T varData)

Описание

Поместите переменную в базовое рабочее пространство MATLAB.

Параметры

String varName

Имя переменной, созданной в базовом рабочем пространстве MATLAB.

T varData

Значение переменной, созданной в базовом рабочем пространстве MATLAB.

Броски

java.util.concurrent.CancellationException

Оценка этой функции отменена.

java.lang.InterruptedException

Оценка этой функции прерывается.

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

Пример
engine.putVariable("myVar", 100);

putVariableAsync

Future<Void> putVariableAsync(String varName, T varData)

Описание

Поместите переменную в базовое рабочее пространство MATLAB асинхронно.

Параметры

String varName

Имя переменной, созданной в базовом рабочем пространстве MATLAB.

T varData

Значение переменной, созданной в базовом рабочем пространстве MATLAB.

Возвраты

Образец Future<Void>

Броски

java.lang.IllegalStateException

Этот Сеанс работы с MATLAB недоступен.

Пример
Future<Void> future = engine.putVariableAsync("myVar", 100);

disconnect

void disconnect()

Описание

Отсоединитесь от текущего сеанса работы с MATLAB.

Броски

com.mathworks.engine.EngineException

Невозможно отключить текущий сеанс работы с MATLAB.

Пример
engine.disconnect();

disconnectAsync

Future<Void> disconnectAsync()

Описание

Отсоединитесь от текущего сеанса работы с MATLAB.

Пример
Future<Void> future = engine.disconnectAsync();

quit

void quit()

Описание

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

Броски

com.mathworks.engine.EngineException

Текущий сеанс работы с MATLAB не может быть завершен.

Пример
engine.quit();

quitAsync

Future<Void> quitAsync()

Описание

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

Возвраты

Образец Future<Void>

Пример
Future<Void> future = engine.quitAsync();

close

void close()

Описание

MatlabEngine предоставляет close() метод реализации java.lang.AutoCloseable интерфейс для MatlabEngine объекты. Этот close() метод позволяет вам использовать try-with-resources, чтобы автоматически отключить или завершить сеанс работы с MATLAB в конце оператора.

The MatlabEngine close() метод отключает или завершает текущий сеанс сеанс работы с MATLAB зависимости от контекста.

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

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

Чтобы принудительно завершить или отключить текущий сеанс работы с MATLAB, явным образом вызовите MatlabEngine.quit(), MatlabEngine.disconnect()или их асинхронные аналоги.

Пример
engine.close();
Введенный в R2016b