Класс 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, см. «Обычно используемые опции запуска».
Запустите MATLAB синхронно. | |
Запустите MATLAB асинхронно. | |
Найти все доступные общие сеансы работы с MATLAB с локальной машины синхронно. | |
Найти все доступные общие сеансы работы с MATLAB с локальной машины асинхронно. | |
Подключитесь к общему сеансу работы с MATLAB на локальной машине синхронно. | |
Подключитесь к общему сеансу работы с MATLAB на локальной машине асинхронно. |
NULL_WRITER | Используйте средство записи, которое игнорирует содержимое из командного окна MATLAB. |
Вычислите функцию MATLAB с аргументами синхронно. | |
Вычислите функцию MATLAB с аргументами асинхронно. | |
Вычислите выражение MATLAB как строку синхронно. | |
Вычислите выражение MATLAB как строку асинхронно. | |
Получите переменную из базового рабочего пространства MATLAB синхронно. | |
Получите переменную из базового рабочего пространства MATLAB асинхронно. | |
Поместите переменную в базовое рабочее пространство MATLAB синхронно. | |
Поместите переменную в базовое рабочее пространство MATLAB асинхронно. | |
Отключитесь от текущего сеанса работы с MATLAB синхронно. | |
Отсоединитесь от текущего сеанса работы с MATLAB асинхронно. | |
Принудительное завершение работы текущего сеанса работы с MATLAB синхронно. | |
Принудительное завершение работы текущего сеанса работы с MATLAB асинхронно. | |
Отключите или завершите текущий сеанс работы с MATLAB. |
startMatlab
static MatlabEngine startMatlab(String[] options)
static MatlabEngine startMatlab()
Запустите MATLAB синхронно.
| Опции запуска, используемые для запуска движка MATLAB. Можно задать несколько опции запуска. Движок поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в Опции запуска без поддержки. Список опций см. в специфичной для платформы команде |
Образец MatlabEngine
| Не удается запустить 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, отмена будет невозможна.
| Опции запуска, используемые для запуска движка MATLAB. Можно задать несколько опции запуска. Движок поддерживает все опции запуска MATLAB, за исключением опций, перечисленных в Опции запуска без поддержки. Список опций см. в специфичной для платформы команде |
Образец Future<MatlabEngine>
Future<MatlabEngine> future = MatlabEngine.startMatlabAsync();
findMatlab
static String[] findMatlab()
Найти все общие сеансы работы с MATLAB на локальной машине синхронно.
Массив имен всех общих сеансов работы с MATLAB на локальном компьютере или пустой вектор, если нет общих сеансов работы с MATLAB, доступных на локальном компьютере.
| Если во время поиска сеансов работы с 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, механизм соединяется с первым доступным сеансом.
| Имя общего сеанса работы с MATLAB. Используйте findMatlab, чтобы получить имена общих сеансов работы с MATLAB. |
Образец MatlabEngine
| MATLAB не удается запустить или подключиться. |
MatlabEngine engine = MatlabEngine.connectMatlab();
connectMatlabAsync
static Future<MatlabEngine> connectMatlabAsync(String name)
static Future<MatlabEngine> connectMatlabAsync
Подключитесь к общему сеансу работы с MATLAB на локальной машине асинхронно. Поведение совпадает с поведением connectMatlab
кроме того, механизм асинхронен. После установления соединения с MATLAB отмена будет отменена.
| Имя общего сеанса работы с 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);
eval
void 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)");
evalAsync
Future<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");
putVariable
void putVariable(String varName, T varData)
Поместите переменную в базовое рабочее пространство MATLAB.
| Имя переменной, созданной в базовом рабочем пространстве MATLAB. |
| Значение переменной, созданной в базовом рабочем пространстве MATLAB. |
| Оценка этой функции отменена. |
| Оценка этой функции прерывается. |
| Этот Сеанс работы с MATLAB недоступен. |
engine.putVariable("myVar", 100);
putVariableAsync
Future<Void> putVariableAsync(String varName, T varData)
Поместите переменную в базовое рабочее пространство MATLAB асинхронно.
| Имя переменной, созданной в базовом рабочем пространстве MATLAB. |
| Значение переменной, созданной в базовом рабочем пространстве MATLAB. |
Образец Future<Void>
| Этот Сеанс работы с MATLAB недоступен. |
Future<Void> future = engine.putVariableAsync("myVar", 100);
disconnect
void disconnect()
Отсоединитесь от текущего сеанса работы с MATLAB.
| Невозможно отключить текущий сеанс работы с MATLAB. |
engine.disconnect();
disconnectAsync
Future<Void> disconnectAsync()
Отсоединитесь от текущего сеанса работы с MATLAB.
Future<Void> future = engine.disconnectAsync();
quit
void quit()
Принудительное завершение работы текущего сеанса работы с MATLAB.
| Текущий сеанс работы с 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();