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