主要内容

com.mathworks.engine.MatlabEngine

Java类使用MATLAB作为一个计算引擎

描述

com.mathworks.engine.MatlabEngine类使用MATLAB®进程作为Java的计算引擎®.这个类提供了Java语言和MATLAB之间的接口,使您能够从Java计算MATLAB函数和表达式。

创建

MatlabEngine类提供静态方法以同步或异步方式启动MATLAB并连接到共享的MATLAB会话。只有这些静态方法可以实例化这个类:

不支金宝app持的启动选项

引擎不支持这些MATLAB启动选项:金宝app

  • - h

  • -

  • -?

  • - n

  • - e

  • -softwareopengl

  • 日志文件

有关MATLAB启动选项的信息,请参见常用启动选项

方法总结

静态方法

startMatlab

MATLAB同步开始。

startMatlabAsync

开始异步MATLAB。

findMatlab

从本地机器同步查找所有可用的共享MATLAB会话。

findMatlabAsync

从本地机器异步查找所有可用的共享MATLAB会话。

connectMatlab

同步连接到本地机器上的共享MATLAB会话。

connectMatlabAsync

异步连接到本地机器上的共享MATLAB会话。

getCurrentMatlab

当从MATLAB环境调用时,连接到当前的MATLAB会话。

成员变量

NULL_WRITER

使用忽略MATLAB命令窗口中的内容的编写器。

成员函数

函数宏指令

同步计算带参数的MATLAB函数。

fevalAsync

异步计算带参数的MATLAB函数。

eval

同步地计算一个MATLAB表达式作为字符串。

evalAsync

异步计算一个MATLAB表达式作为字符串。

getVariable

从MATLAB基础工作空间同步获取一个变量。

getVariableAsync

从MATLAB基础工作区异步获取一个变量。

putVariable

同步地将一个变量放入MATLAB基础工作空间中。

putVariableAsync

将一个变量异步地放入MATLAB基本工作区中。

断开连接

从当前的MATLAB会话同步断开。

disconnectAsync

异步断开当前MATLAB会话。

辞职

强制关闭当前的MATLAB会话同步。

quitAsync

强制异步关闭当前MATLAB会话。

关闭

断开或终止当前的MATLAB会话。

方法详细信息

startMatlab

static MatlabEngine startMatlab(String[] options)

静态MatlabEngine startMatlab ()

描述

MATLAB同步开始。

参数

String[]选项

启动选项用于启动MATLAB引擎。您可以指定多个启动选项。引擎支持所有MATLA金宝appB启动选项,除了在不支金宝app持的启动选项.有关选项列表,请参阅特定于平台的命令matlab (Windows)matlab (macOS),或matlab (Linux)

返回

的实例MatlabEngine

抛出

com.mathworks.engine.EngineException

MATLAB无法启动。

例子
String[]选项= {" -noFigureWindows”,“- r”、“cd H: "};MatlabEngine eng = MatlabEngine. startmatlab (options);

startMatlabAsync

static Future startMatlabAsync(String[] options)

静态未来< MatlabEngine > startMatlabAsync ()

描述

开始异步MATLAB。一旦MATLAB已经开始,然后取消是一个无操作。

参数

String[]选项

启动选项用于启动MATLAB引擎。您可以指定多个启动选项。引擎支持所有MATLA金宝appB启动选项,除了在不支金宝app持的启动选项.有关选项列表,请参阅特定于平台的命令matlab (Windows)matlab (macOS),或matlab (Linux)

返回

的实例未来的< MatlabEngine >

例子
Future Future = MatlabEngine. startmatlabasync ();

findMatlab

静态String [] findMatlab ()

描述

同步查找本地机器上所有共享的MATLAB会话。

返回

本地机器上所有共享MATLAB会话的名称数组,如果本地机器上没有可用的共享MATLAB会话,则为空向量。

抛出

com.mathworks.engine.EngineException

如果在查找MATLAB会话期间出现失败。

例子
String[] engines = MatlabEngine.findMatlab();

findMatlabAsync

静态未来< String [] > findMatlabAsync ()

描述

在本地机器上异步查找所有共享的MATLAB会话。

返回

的一个实例未来的< String [] >

例子
Future Future = MatlabEngine.findMatlabAsync();

connectMatlab

static MatlabEngine connectMatlab(String name)

静态MatlabEngine connectMatlab ()

描述

同步连接到本地机器上的共享会话。

  • 如果您指定了一个共享MATLAB会话的名称,但是引擎无法找到具有该名称的会话,则引擎会抛出一个异常。

  • 如果您没有指定名称,并且没有可用的共享MATLAB会话,那么引擎将使用默认选项启动一个新的共享MATLAB会话。

  • 如果没有指定名称,并且存在可用的共享MATLAB会话,则引擎将连接到第一个可用会话。

当从MATLAB环境调用时,要连接到当前的MATLAB会话,请使用getCurrentMatlab代替。

参数

字符串名称

共享的MATLAB会话的名称。使用findMatlab获取共享的MATLAB会话的名称。

返回

的一个实例MatlabEngine

抛出

com.mathworks.engine.EngineException

MATLAB无法启动或连接。

例子
MatlabEngine engine = MatlabEngine. connectmatlab ();

connectMatlabAsync

static Future connectMatlabAsync(String name)

静态未来< MatlabEngine > connectMatlabAsync

描述

异步连接到本地机器上的共享MATLAB会话。这种行为与……的行为相同connectMatlab不过这种机制是异步的。一旦连接到MATLAB,然后取消是一个无操作。

参数

字符串名称

共享的MATLAB会话的名称。

返回

的一个实例未来的< MatlabEngine >

例子
Future Future = MatlabEngine. connectmatlabasync ();

getCurrentMatlab

静态MatlabEngine getCurrentMatlab ()

描述

当从MATLAB环境调用时,连接到当前的MATLAB会话。

当从引擎应用程序调用时,要连接到MATLAB会话,请使用connectMatlab

返回

的一个实例MatlabEngine

抛出

com.mathworks.engine.EngineException

不支持从用户线程调用。金宝app

例子
MatlabEngine engine = MatlabEngine. getcurrentmatlab ();
另请参阅

从Java回调到MATLAB

函数宏指令

T feval(int nlhs, String func, Writer output, Writer error, Object…args)

T feval(int nlhs, String func, Object…args)

T feval(String func, Writer output, Writer error, Object…args)

T feval(String func, Object…args)

描述

用输入参数同步地计算MATLAB函数。

参数

字符串函数

要计算的MATLAB函数或脚本的名称。

int nlhs

预期产出数量。默认值为1。

如果nlhs大于1,返回类型T必须[] <对象>

如果nlhs0,返回类型T必须<空><?>

如果nlhs1,返回类型T可以是预期的类型还是<对象>如果类型未知。

作家输出

用于存储MATLAB函数的标准输出的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略MATLAB命令窗口的输出。

作者错误

流用来存储来自MATLAB函数的标准误差。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略来自MATLAB命令窗口的错误消息。

对象……arg游戏

传递给MATLAB函数的参数。

返回

执行MATLAB函数的结果

抛出

java.util.concurrent.CancellationException

取消了MATLAB函数的计算。

java.lang.InterruptedException

一个MATLAB函数的评估被中断。

java.lang.IllegalStateException

MATLAB会话不可用。

com.mathworks.engine.MatlabExcecutionException

函数中存在MATLAB运行时错误。

com.mathworks.engine.Un金宝appsupportedTypeExeption

存在不支持的数据类型。金宝app

com.mathworks.engine.MatlabSyntaxException

在MATLAB函数中有一个语法错误。

例子
Double result = engine。函数宏指令“√”,4);

fevalAsync

Future fevalAsync(int nlhs, String func, Writer output, Writer error, Object…args)

Future fevalAsync(int nlhs, String func, Object…args)

Future fevalAsync(String func, Writer output, Writer error, Object…args)

Future fevalAsync(String func, Object…args)

描述

用输入参数异步地计算MATLAB函数。

参数

字符串函数

要计算的MATLAB函数或脚本的名称。

int nlhs

预期产出数量。默认是1

如果nlhs大于1,返回类型T必须[] <对象>

如果nlhs0,返回类型T必须<空><?>

如果nlhs1,返回类型T可以是预期的类型还是<对象>如果类型未知。

作家输出

用于存储MATLAB函数的标准输出的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略MATLAB命令窗口的输出。

作者错误

流用来存储来自MATLAB函数的标准误差。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略来自MATLAB命令窗口的错误消息。

对象……arg游戏

传递给MATLAB函数的参数。

返回

的一个实例未来的< T >

抛出

java.lang.IllegalStateException

MATLAB会话不可用。
例子
未来<双>未来=引擎。fevalAsync“√”,4);

eval

void eval(String命令,Writer输出,Writer错误)

空白eval (String命令)

描述

同步地计算一个MATLAB语句作为一个字符串。

参数

字符串命令

MATLAB语句求值。

作家输出

用于存储MATLAB语句的标准输出的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略MATLAB命令窗口的输出。

作者错误

用于存储来自MATLAB语句的标准错误的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略来自MATLAB命令窗口的错误消息。

抛出

java.util.concurrent.CancellationException

取消了MATLAB函数的计算。

java.lang.InterruptedException

一个MATLAB函数的评估被中断。

java.lang.IllegalStateException

MATLAB会话不可用。

com.mathworks.engine.MatlabExcecutionException

在运行时,在MATLAB语句中有一个错误。

com.mathworks.engine.MatlabSyntaxException

在MATLAB语句中有一个语法错误。

例子
引擎。eval("result = sqrt(4)");

evalAsync

未来 evalAsync(String命令,Writer输出,Writer错误)

未来> <空白evalAsync (String命令)

描述

异步计算一个MATLAB语句作为一个字符串。

参数

字符串命令

MATLAB语句求值。

作家输出

用于存储MATLAB语句的标准输出的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略MATLAB命令窗口的输出。

作者错误

用于存储来自MATLAB语句的标准错误的流。如果不指定写入器,则将输出写入命令窗口或终端。使用NULL_WRITER忽略来自MATLAB命令窗口的错误消息。

返回

的一个实例未来的< >空白

抛出

java.lang.IllegalStateException

MATLAB会话不可用。

例子
Future Future = engine.evalAsync("sqrt(4)");

getVariable

T getVariable(String varName)

描述

从MATLAB基础工作区中获取一个变量。

参数

字符串varName

在MATLAB基础工作空间中变量的名称。

返回

从MATLAB基础工作区传递的变量

抛出

java.util.concurrent.CancellationException

函数的求值被取消。

java.lang.InterruptedException

该函数的计算被中断。

java.lang.IllegalStateException

MATLAB会话不可用。

例子
double myVar = engine.getVariable("myVar");

getVariableAsync

Future getVariableAsync(String varName)

描述

从MATLAB基础工作区异步获取一个变量。

参数

字符串varName

在MATLAB基础工作区中变量的名称。

返回

的一个实例未来的< T >

抛出

java.lang.IllegalStateException

MATLAB会话不可用。

例子
Future Future = engine.getVariableAsync("myVar");

putVariable

void putVariable(String varName, T varData)

描述

将一个变量放入MATLAB基本工作区中。

参数

字符串varName

要在MATLAB基础工作空间中创建的变量的名称。

T varData

要在MATLAB基础工作空间中创建的变量的值。

抛出

java.util.concurrent.CancellationException

函数的求值被取消。

java.lang.InterruptedException

该函数的计算被中断。

java.lang.IllegalStateException

MATLAB会话不可用。

例子
引擎。putVariable(“myvar#”,100);

putVariableAsync

未来 putVariableAsync(String varName, T varData)

描述

将一个变量异步地放入MATLAB基本工作区中。

参数

字符串varName

要在MATLAB基础工作空间中创建的变量的名称。

T varData

要在MATLAB基础工作空间中创建的变量的值。

返回

的一个实例未来的< >空白

抛出

java.lang.IllegalStateException

MATLAB会话不可用。

例子
未来<无效>未来=引擎。putVariableAsync("myVar", 100);

断开连接

空白断开()

描述

断开当前MATLAB会话。

抛出

com.mathworks.engine.EngineException

当前的MATLAB会话无法断开。

例子
engine.disconnect ();

disconnectAsync

未来的< >空白disconnectAsync ()

描述

断开当前MATLAB会话。

例子
Future Future = engine.disconnectAsync();

辞职

无效退出()

描述

强制关闭当前的MATLAB会话。

抛出

com.mathworks.engine.EngineException

当前的MATLAB会话无法关闭。

例子
engine.quit ();

quitAsync

未来的< >空白quitAsync ()

描述

强制关闭当前MATLAB会话异步而不等待终止。

返回

的一个实例未来的< >空白

例子
Future Future = engine.quitAsync();

关闭

空白close ()

描述

MatlabEngine提供了close ()方法来实现java.lang.AutoCloseable界面MatlabEngine对象。这close ()方法使您可以使用试一试-with-resources语句在语句结束时自动断开或终止MATLAB会话。

MatlabEngineclose ()方法断开或终止当前MATLAB会话,具体取决于上下文。

  • 如果Java进程将MATLAB会话作为默认的非共享会话启动,close ()终止MATLAB。

  • 如果MATLAB会话是共享会话,close ()将MATLAB从这个Java进程中断开。MATLAB在没有其他连接时终止。

要强制关闭或断开当前MATLAB会话,显式调用MatlabEngine.quit ()MatlabEngine.disconnect (),或它们的异步对应对象。

例子
engine.close ();
介绍了R2016b