Класс Java, использующий MATLAB в качестве вычислительного механизма
com.mathworks.engine.MatlabEngine класс использует процесс MATLAB ® в качестве вычислительного механизма для Java ®. Этот класс обеспечивает интерфейс между языком Java и MATLAB, позволяя вычислять функции и выражения MATLAB из Java.
MatlabEngine класс предоставляет статические методы для запуска MATLAB и для синхронного или асинхронного подключения к общей сессии MATLAB. Только эти статические методы могут создавать экземпляры этого класса:
Запустить MATLAB синхронно - startMatlab
Синхронное подключение к общему сеансу MATLAB - startMatlab
Запустить MATLAB асинхронно - startMatlabAsync
Асинхронное подключение к общему сеансу MATLAB - startMatlabAsync
Модуль не поддерживает следующие опции запуска MATLAB:
-h
-help
-?
-n
-e
-softwareopengl
-logfile
Дополнительные сведения о параметрах запуска MATLAB см. в разделе Часто используемые параметры запуска.
Запустить MATLAB синхронно. | |
Запустить MATLAB асинхронно. | |
Синхронный поиск всех доступных общих сеансов MATLAB с локального компьютера. | |
Поиск всех доступных общих сеансов MATLAB на локальном компьютере асинхронно. | |
Синхронное подключение к общему сеансу MATLAB на локальном компьютере. | |
Подключение к общему сеансу MATLAB на локальном компьютере асинхронно. |
NULL_WRITER | Используйте устройство записи, которое игнорирует содержимое окна команды MATLAB. |
Вычислите функцию MATLAB синхронно с аргументами. | |
Вычислите функцию MATLAB с аргументами асинхронно. | |
Вычислите выражение MATLAB как строку синхронно. | |
Вычислите выражение MATLAB как строку асинхронно. | |
Синхронное получение переменной из базовой рабочей области MATLAB. | |
Асинхронное получение переменной из базовой рабочей области MATLAB. | |
Поместить переменную в базовую рабочую область MATLAB синхронно. | |
Помещайте переменную в базовую рабочую область MATLAB асинхронно. | |
Синхронное отключение от текущего сеанса MATLAB. | |
Отключитесь от текущего сеанса MATLAB асинхронно. | |
Принудительное завершение текущего сеанса MATLAB синхронно. | |
Принудительное отключение текущего сеанса MATLAB асинхронно. | |
Отключите или завершите текущий сеанс MATLAB. |
startMatlabstatic MatlabEngine startMatlab(String[] options)
static MatlabEngine startMatlab()
Запустить MATLAB синхронно.
| Параметры запуска, используемые для запуска модуля MATLAB. Можно указать несколько параметров запуска. Модуль поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в разделе Неподдерживаемые опции запуска. Список параметров см. в команде для конкретной платформы. |
Экземпляр MatlabEngine
| Не удается запустить MATLAB. |
String[] options = {"-noFigureWindows", "-r", "cd H:"};
MatlabEngine eng = MatlabEngine.startMatlab(options);
startMatlabAsyncstatic Future<MatlabEngine> startMatlabAsync(String[] options)
static Future<MatlabEngine> startMatlabAsync()
Запустить MATLAB асинхронно. После запуска MATLAB отмена является операцией no-op.
| Параметры запуска, используемые для запуска модуля MATLAB. Можно указать несколько параметров запуска. Модуль поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в разделе Неподдерживаемые опции запуска. Список параметров см. в команде для конкретной платформы. |
Экземпляр Future<MatlabEngine>
Future<MatlabEngine> future = MatlabEngine.startMatlabAsync();
findMatlabstatic String[] findMatlab()
Поиск всех общих сеансов MATLAB на локальном компьютере синхронно.
Массив имен всех общих сессий MATLAB на локальном компьютере или пустой вектор, если на локальном компьютере нет доступных общих сессий MATLAB.
| Если во время поиска сеансов MATLAB произошел сбой. |
String[] engines = MatlabEngine.findMatlab();
findMatlabAsyncstatic Future<String[]> findMatlabAsync()
Поиск всех общих сеансов MATLAB на локальном компьютере асинхронно.
Экземпляр Future<String[]>
Future<String[]> future = MatlabEngine.findMatlabAsync();
connectMatlabstatic MatlabEngine connectMatlab(String name)
static MatlabEngine connectMatlab()
Синхронное подключение к общему сеансу MATLAB на локальном компьютере.
Если указано имя общего сеанса MATLAB, но обработчик не может найти сеанс с таким именем, обработчик создает исключение.
Если имя не указано и общий сеанс MATLAB недоступен, модуль запускает новый общий сеанс MATLAB с опциями по умолчанию.
Если имя не указано и доступны общие сессии MATLAB, подсистема подключается к первой доступной сессии.
| Имя общего сеанса MATLAB. Используйте findMatlab для получения имен общих сессий MATLAB. |
Экземпляр MatlabEngine
| Не удается запустить или подключить MATLAB. |
MatlabEngine engine = MatlabEngine.connectMatlab();
connectMatlabAsyncstatic Future<MatlabEngine> connectMatlabAsync(String name)
static Future<MatlabEngine> connectMatlabAsync
Подключение к общему сеансу MATLAB на локальном компьютере асинхронно. Поведение совпадает с поведением connectMatlab за исключением асинхронного механизма. После установления соединения с MATLAB отмена является операцией no-op.
| Имя общего сеанса 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 синхронно с входными аргументами.
| Имя вычисляемой функции или сценария MATLAB. |
| Количество ожидаемых результатов. Значение по умолчанию - 1. Если Если Если |
| Поток, используемый для хранения стандартных выходных данных функции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Поток, используемый для сохранения стандартной ошибки из функции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Аргументы для передачи функции MATLAB. |
Результат выполнения функции MATLAB
| Оценка функции MATLAB отменена. |
| Оценка функции MATLAB была прервана. |
| Сеанс MATLAB недоступен. |
| Ошибка выполнения MATLAB в функции. |
| Неподдерживаемый тип данных. |
| Синтаксическая ошибка в функции 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 с помощью входных аргументов асинхронно.
| Имя вычисляемой функции или сценария MATLAB. |
| Количество ожидаемых результатов. По умолчанию: Если Если Если |
| Поток, используемый для хранения стандартных выходных данных функции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Поток, используемый для сохранения стандартной ошибки из функции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Аргументы для передачи функции MATLAB. |
Экземпляр Future<T>
| Сеанс MATLAB недоступен. |
Future<Double> future = engine.fevalAsync("sqrt", 4);evalvoid eval(String command, Writer output, Writer error)
void eval(String command)
Вычислите оператор MATLAB как строку синхронно.
| Оператор MATLAB для оценки. |
| Поток, используемый для хранения стандартных выходных данных инструкции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Поток, используемый для сохранения стандартной ошибки из инструкции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Оценка функции MATLAB отменена. |
| Оценка функции MATLAB была прервана. |
| Сеанс MATLAB недоступен. |
| Ошибка в инструкции MATLAB во время выполнения. |
| Синтаксическая ошибка в инструкции MATLAB. |
engine.eval("result = sqrt(4)");evalAsyncFuture<Void> evalAsync(String command, Writer output, Writer error)
Future<Void> evalAsync(String command)
Вычислите оператор MATLAB как строку асинхронно.
| Оператор MATLAB для оценки. |
| Поток, используемый для хранения стандартных выходных данных инструкции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
| Поток, используемый для сохранения стандартной ошибки из инструкции MATLAB. Если модуль записи не указан, выходные данные записываются в командное окно или терминал. Использовать |
Экземпляр Future<Void>
| Сеанс MATLAB недоступен. |
Future<Void> future = engine.evalAsync("sqrt(4)");getVariable<T> T getVariable(String varName)
Получение переменной из базовой рабочей области MATLAB.
| Имя переменной в базовой рабочей области MATLAB. |
Переменная, переданная из базовой рабочей области MATLAB
| Оценка этой функции отменена. |
| Оценка этой функции прерывается. |
| Сеанс MATLAB недоступен. |
double myVar = engine.getVariable("myVar");getVariableAsync<T> Future<T> getVariableAsync(String varName)
Асинхронное получение переменной из базовой рабочей области MATLAB.
| Имя переменной в базовой рабочей области MATLAB. |
Экземпляр Future<T>
| Сеанс MATLAB недоступен. |
Future<Double> future = engine.getVariableAsync("myVar");putVariablevoid putVariable(String varName, T varData)
Поместите переменную в базовую рабочую область MATLAB.
| Имя переменной, создаваемой в базовой рабочей области MATLAB. |
| Значение переменной, создаваемой в базовой рабочей области MATLAB. |
| Оценка этой функции отменена. |
| Оценка этой функции прерывается. |
| Сеанс MATLAB недоступен. |
engine.putVariable("myVar", 100);putVariableAsyncFuture<Void> putVariableAsync(String varName, T varData)
Помещайте переменную в базовую рабочую область MATLAB асинхронно.
| Имя переменной, создаваемой в базовой рабочей области MATLAB. |
| Значение переменной, создаваемой в базовой рабочей области MATLAB. |
Экземпляр Future<Void>
| Сеанс MATLAB недоступен. |
Future<Void> future = engine.putVariableAsync("myVar", 100);disconnectvoid disconnect()
Отключитесь от текущего сеанса MATLAB.
| Текущий сеанс MATLAB не может быть отключен. |
engine.disconnect();
disconnectAsyncFuture<Void> disconnectAsync()
Отключитесь от текущего сеанса MATLAB.
Future<Void> future = engine.disconnectAsync();
quitvoid quit()
Принудительное завершение текущего сеанса MATLAB.
| Невозможно завершить текущий сеанс MATLAB. |
engine.quit();
quitAsyncFuture<Void> quitAsync()
Принудительное отключение текущего сеанса MATLAB асинхронно без ожидания завершения.
Экземпляр Future<Void>
Future<Void> future = engine.quitAsync();
closevoid close()
MatlabEngine обеспечивает close() способ реализации java.lang.AutoCloseable интерфейс для MatlabEngine объекты. Это close() позволяет использовать tryОператор -with-resources автоматически разъединяет или завершает сеанс MATLAB в конце оператора.
MatlabEngine
close() метод разъединяет или завершает текущий сеанс MATLAB в зависимости от контекста.
Если процесс Java запускает сеанс MATLAB как сеанс, не являющийся общим по умолчанию, close() завершает MATLAB.
Если сеанс MATLAB является общим сеансом, close() отключает MATLAB от этого процесса Java. MATLAB завершается при отсутствии других соединений.
Для принудительного отключения или отключения текущего сеанса MATLAB явно вызовите MatlabEngine.quit(), MatlabEngine.disconnect()или их асинхронные аналоги.
engine.close();