Java类使用MATLAB作为一个计算引擎
的com.mathworks.engine.MatlabEngine
类使用MATLAB®作为Java的计算引擎®.该类提供了Java语言和MATLAB之间的接口,使您能够从Java计算MATLAB函数和表达式。
的MatlabEngine
类提供了启动MATLAB和同步或异步连接到共享MATLAB会话的静态方法。只有这些静态方法可以实例化这个类:
启动MATLAB同步-startMatlab
同步连接到共享的MATLAB会话connectMatlab
异步启动MATLAB -startMatlabAsync
异步连接到共享的MATLAB会话connectMatlabAsync
引擎不支持这些MATLAB启动选项:金宝app
- 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
静态MatlabEngine startMatlab(字符串[]选项)
startMatlab()
同步启动MATLAB。
|
启动选项用于启动MATLAB引擎。您可以指定多个启动选项。引擎支持所有的MATL金宝appAB启动选项,除了列在不支金宝app持的启动选项.有关选项列表,请参阅特定于平台的命令 |
的实例MatlabEngine
|
MATLAB无法启动。 |
String[]选项= {" -noFigureWindows”,“- r”、“cd H: "};MatlabEngine eng = MatlabEngine. startmatlab (options);
startMatlabAsync
static Future
异步启动MATLAB。一旦MATLAB启动,取消是不需要操作的。
|
启动选项用于启动MATLAB引擎。您可以指定多个启动选项。引擎支持所有的MATL金宝appAB启动选项,除了列在不支金宝app持的启动选项.有关选项列表,请参阅特定于平台的命令 |
的实例未来的< MatlabEngine >
FutureFuture = MatlabEngine. startmatlabasync ();
findMatlab
静态字符串[]
在本地机器上同步查找所有共享的MATLAB会话。
本地机器上所有共享MATLAB会话名称的数组,如果本地机器上没有可用的共享MATLAB会话,则为空向量。
|
如果在搜索MATLAB会话期间出现故障。 |
String[] engines = MatlabEngine.findMatlab();
findMatlabAsync
static Future
在本地机器上异步查找所有共享的MATLAB会话。
的一个例子未来的< String [] >
FutureFuture = MatlabEngine.findMatlabAsync();
connectMatlab
静态的MatlabEngine
静态的MatlabEngine
同步连接到本地机器上的共享会话。
如果指定了共享MATLAB会话的名称,但引擎无法找到具有该名称的会话,则引擎会抛出异常。
如果不指定名称且没有可用的共享MATLAB会话,则引擎将使用默认选项启动一个新的共享MATLAB会话。
如果不指定名称,并且存在可用的共享MATLAB会话,则引擎连接到第一个可用会话。
若要在从MATLAB环境调用时连接到当前MATLAB会话,请使用getCurrentMatlab
代替。
|
共享的MATLAB会话的名称。使用findMatlab获取共享MATLAB会话的名称。 |
的一个例子MatlabEngine
|
MATLAB无法启动或连接。 |
MatlabEngine. connectmatlab ();
connectMatlabAsync
静态未来
静态Future
异步连接到本地计算机上的共享MATLAB会话。的行为与的相同connectMatlab
只不过这个机制是异步的。一旦连接到MATLAB,那么取消是不需要操作的。
|
共享的MATLAB会话的名称。 |
的一个例子未来的< MatlabEngine >
FutureFuture = MatlabEngine. connectmatlabasync ();
getCurrentMatlab
getCurrentMatlab()
从MATLAB环境调用时连接到当前的MATLAB会话。
要在从引擎应用程序调用时连接到MATLAB会话,请使用connectMatlab
.
的一个例子MatlabEngine
|
不支持从用户线程调用。金宝app |
MatlabEngine = MatlabEngine. getcurrentmatlab ();
函数宏指令
同步计算带有输入参数的MATLAB函数。
|
要计算的MATLAB函数或脚本的名称。 |
|
预期产出的数目。默认值为1。 如果 如果 如果 |
|
流用来存储来自MATLAB函数的标准输出。如果不指定写入器,则将输出写入命令窗口或终端。使用 |
|
流用来存储来自MATLAB的标准误差函数。如果不指定写入器,则将输出写入命令窗口或终端。使用 |
|
参数传递给MATLAB函数。 |
执行MATLAB函数的结果
|
一个MATLAB函数的计算被取消了。 |
|
一个MATLAB函数的计算中断了。 |
|
MATLAB会话不可用。 |
|
函数中存在MATLAB运行时错误。 |
|
存在不支持的数据类型。金宝app |
|
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
未来
未来
将MATLAB语句作为字符串异步求值。
|
MATLAB语句求值。 |
|
流用于存储来自MATLAB语句的标准输出。如果不指定写入器,则将输出写入命令窗口或终端。使用 |
|
流用来存储来自MATLAB的标准误差语句。如果不指定写入器,则将输出写入命令窗口或终端。使用 |
的一个例子未来的< >空白
|
MATLAB会话不可用。 |
Future = 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(String varName, T varData)
将一个变量放入MATLAB基本工作区。
|
要在MATLAB基本工作区中创建的变量的名称。 |
|
要在MATLAB基本工作区中创建的变量的值。 |
|
取消了该函数的求值。 |
|
此函数的求值被中断。 |
|
MATLAB会话不可用。 |
引擎。putVariable(“myvar#”,100);
putVariableAsync
putVariableAsync(String varName, T varData)
异步地将一个变量放入MATLAB基本工作区中。
|
要在MATLAB基本工作区中创建的变量的名称。 |
|
要在MATLAB基本工作区中创建的变量的值。 |
的一个例子未来的< >空白
|
MATLAB会话不可用。 |
未来未来=引擎。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 ();