Java类使用MATLAB作为一个计算引擎
的com.mathworks.engine.MatlabEngine
类使用MATLAB®进程作为Java的计算引擎®.这个类提供了Java语言和MATLAB之间的接口,使您能够从Java计算MATLAB函数和表达式。
的MatlabEngine
类提供了静态方法来同步或异步地启动MATLAB和连接到共享的MATLAB会话。只有这些静态方法可以实例化这个类:
同步启动MATLAB -startMatlab
同步连接到共享MATLAB会话connectMatlab
异步启动MATLAB -startMatlabAsync
异步连接到共享MATLAB会话connectMatlabAsync
引擎不支持以下MATLAB启动选项:万博1manbetx
- h
-
-?
- n
- e
-softwareopengl
日志文件
有关MATLAB启动选项的信息,请参见常用的启动选项.
同步启动MATLAB。 |
|
异步启动MATLAB。 |
|
从本地机器同步查找所有可用的共享MATLAB会话。 |
|
从本地机器异步查找所有可用的共享MATLAB会话。 |
|
同步连接到本地机器上的共享MATLAB会话。 |
|
异步连接到本地机器上的共享MATLAB会话。 |
|
从MATLAB环境调用时连接到当前MATLAB会话。 |
NULL_WRITER |
使用一个忽略MATLAB命令窗口内容的写入器。 |
同步计算一个带有参数的MATLAB函数。 |
|
异步计算带有参数的MATLAB函数。 |
|
将MATLAB表达式作为字符串同步计算。 |
|
异步地将MATLAB表达式计算为字符串。 |
|
同步地从MATLAB基础工作区获取一个变量。 |
|
异步地从MATLAB基本工作区获取一个变量。 |
|
同步地将一个变量放入MATLAB基础工作区。 |
|
异步地将一个变量放入MATLAB基本工作区。 |
|
同步断开当前MATLAB会话。 |
|
异步断开当前MATLAB会话。 |
|
强制同步关闭当前MATLAB会话。 |
|
强制异步关闭当前MATLAB会话。 |
|
断开或终止当前MATLAB会话。 |
startMatlab
startMatlab(String[] options)
静态MatlabEngine
同步启动MATLAB。
|
启动选项用于启动MATLAB引擎。您可以指定多个启动选项。该引擎支持所有MATL万博1manbetxAB启动选项,除了中列出的选项不支万博1manbetx持的启动选项.有关选项列表,请参阅特定于平台的命令 |
的实例MatlabEngine
|
MATLAB无法启动。 |
String[]选项= {" -noFigureWindows”,“- r”、“cd H: "};MatlabEngine eng = MatlabEngine. startmatlab (options);
startMatlabAsync
static Future
静态Future
异步启动MATLAB。一旦MATLAB启动了,那么取消是没有操作的。
|
启动选项用于启动MATLAB引擎。您可以指定多个启动选项。该引擎支持所有MATL万博1manbetxAB启动选项,除了中列出的选项不支万博1manbetx持的启动选项.有关选项列表,请参阅特定于平台的命令 |
的实例未来的< MatlabEngine >
FutureFuture = MatlabEngine. startmatlabasync ();
findMatlab
静态字符串[]
同步查找本地机器上所有共享的MATLAB会话。
本地机器上所有共享MATLAB会话的名称数组,如果本地机器上没有可用的共享MATLAB会话,则为空向量。
|
如果在搜索MATLAB会话期间出现失败。 |
字符串[]引擎= MatlabEngine.findMatlab();
findMatlabAsync
static Future
异步查找本地机器上所有共享的MATLAB会话。
的一个实例未来的< String [] >
FutureFuture = MatlabEngine.findMatlabAsync();
connectMatlab
静态MatlabEngine connectMatlab(字符串名称)
静态MatlabEngine连接matlab ()
同步连接到本地机器上的共享会话。
如果指定了共享MATLAB会话的名称,但引擎无法找到具有该名称的会话,则引擎抛出异常。
如果未指定名称且没有可用的共享MATLAB会话,引擎将使用默认选项启动一个新的共享MATLAB会话。
如果未指定名称且有可用的共享MATLAB会话,则引擎连接到第一个可用会话。
若要从MATLAB环境调用时连接到当前MATLAB会话,请使用getCurrentMatlab
代替。
|
共享MATLAB会话的名称。使用findMatlab来获取共享MATLAB会话的名称。 |
的一个实例MatlabEngine
|
MATLAB无法启动或连接。 |
MatlabEngine engine = MatlabEngine. connectmatlab ();
connectMatlabAsync
static Future
static Future
异步连接到本地计算机上的共享MATLAB会话。的行为与的行为相同connectMatlab
除了机制是异步的。一旦与MATLAB建立了连接,那么取消是没有操作的。
|
共享MATLAB会话的名称。 |
的一个实例未来的< MatlabEngine >
FutureFuture = MatlabEngine. connectmatlabasync ();
getCurrentMatlab
getCurrentMatlab()
从MATLAB环境调用时连接到当前MATLAB会话。
若要从引擎应用程序调用时连接到MATLAB会话,请使用connectMatlab
.
的一个实例MatlabEngine
|
不支持从用户线程调用。万博1manbetx |
MatlabEngine engine = MatlabEngine. getcurrentmatlab ();
函数宏指令
同步计算带有输入参数的MATLAB函数。
|
要计算的MATLAB函数或脚本的名称。 |
|
预期输出数。默认值是1。 如果 如果 如果 |
|
流用于存储来自MATLAB函数的标准输出。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
流用来存储来自MATLAB的标准误差函数。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
要传递给MATLAB函数的参数。 |
MATLAB函数执行结果
|
一个MATLAB函数的计算被取消。 |
|
一个MATLAB函数的计算中断。 |
|
MATLAB会话不可用。 |
|
该函数存在MATLAB运行时错误。 |
|
存在不支持的数据类型。万博1manbetx |
|
MATLAB函数有语法错误。 |
双结果=引擎。函数宏指令“√”,4);
fevalAsync
异步计算MATLAB函数的输入参数。
|
要计算的MATLAB函数或脚本的名称。 |
|
预期输出数。默认是 如果 如果 如果 |
|
流用于存储来自MATLAB函数的标准输出。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
流用来存储来自MATLAB的标准误差函数。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
要传递给MATLAB函数的参数。 |
的一个实例未来的< T >
|
MATLAB会话不可用。 |
FutureFuture = engine。fevalAsync“√”,4);
eval
void eval(字符串命令,写入器输出,写入器错误)
void eval(字符串命令)
将MATLAB语句作为字符串同步计算。
|
MATLAB语句求值。 |
|
流用于存储MATLAB语句的标准输出。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
流用于存储来自MATLAB语句的标准误差。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
一个MATLAB函数的计算被取消。 |
|
一个MATLAB函数的计算中断。 |
|
MATLAB会话不可用。 |
|
运行时MATLAB语句有错误。 |
|
MATLAB语句语法错误。 |
引擎。eval("result = sqrt(4)");
evalAsync
未来<无效> evalAsync(字符串命令,写入器输出,写入器错误)
未来<无效> evalAsync(字符串命令)
异步地将MATLAB语句计算为字符串。
|
MATLAB语句求值。 |
|
流用于存储MATLAB语句的标准输出。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
|
流用于存储来自MATLAB语句的标准误差。如果没有指定写入器,则输出将写入命令窗口或终端。使用 |
的一个实例未来的< >空白
|
MATLAB会话不可用。 |
FutureFuture = engine.evalAsync("sqrt(4)");
getVariable
从MATLAB基本工作区获取一个变量。
|
MATLAB基本工作空间中变量的名称。 |
从MATLAB基础工作空间传递的变量
|
此函数的求值被取消。 |
|
这个函数的求值被中断。 |
|
MATLAB会话不可用。 |
double myVar = engine.getVariable("myVar");
getVariableAsync
异步地从MATLAB基本工作区获取一个变量。
|
MATLAB基础工作空间中的变量名称。 |
的一个实例未来的< T >
|
MATLAB会话不可用。 |
FutureFuture = engine.getVariableAsync("myVar");
putVariable
void putVariable(字符串varName, T varData)
将一个变量放入MATLAB基本工作区。
|
要在MATLAB基本工作空间中创建的变量的名称。 |
|
要在MATLAB基本工作空间中创建的变量的值。 |
|
此函数的求值被取消。 |
|
这个函数的求值被中断。 |
|
MATLAB会话不可用。 |
引擎。putVariable(“myvar#”,100);
putVariableAsync
putVariableAsync(String varName, T varData)
异步地将一个变量放入MATLAB基本工作区。
|
要在MATLAB基本工作空间中创建的变量的名称。 |
|
要在MATLAB基本工作空间中创建的变量的值。 |
的一个实例未来的< >空白
|
MATLAB会话不可用。 |
FutureFuture = engine。putVariableAsync("myVar", 100);
断开连接
空白断开()
断开当前MATLAB会话。
|
无法断开当前MATLAB会话。 |
engine.disconnect ();
disconnectAsync
未来的< >空白disconnectAsync ()
断开当前MATLAB会话。
FutureFuture = engine.disconnectAsync();
辞职
无效退出()
强制关闭当前MATLAB会话。
|
当前MATLAB会话无法关闭。 |
engine.quit ();
quitAsync
未来的< >空白quitAsync ()
强制异步关闭当前MATLAB会话,而不等待终止。
的一个实例未来的< >空白
FutureFuture = engine.quitAsync();
关闭
空白close ()
MatlabEngine
提供了close ()
方法来实现java.lang.AutoCloseable
界面MatlabEngine
对象。这close ()
方法使您可以使用试一试
-with-resources语句在语句结束时自动断开或终止MATLAB会话。
的MatlabEngine
close ()
方法断开或终止当前MATLAB会话,具体取决于上下文。
如果Java进程将MATLAB会话作为默认的非共享会话启动,close ()
终止MATLAB。
如果MATLAB会话是共享会话,close ()
断开MATLAB与Java进程的连接。MATLAB在没有其他连接时终止。
若要强制关闭或断开当前MATLAB会话,请显式调用MatlabEngine.quit ()
,MatlabEngine.disconnect ()
,或它们的异步对等体。
engine.close ();