主要内容

com.mathworks.engine.MatlabEngine

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

描述

com.mathworks.engine.MatlabEngine班级使用matlab®进程作为Java的计算引擎®.此类提供Java语言和MATLAB之间的接口,使您可以评估MATLAB函数和Java的表达式。

创建

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

不支金宝app持的启动选项

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

  • -H

  • -帮助

  • - ?

  • -N

  • -e.

  • -softwareopengl

  • 日志文件

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

方法总结

静态方法

startmatlab.

MATLAB同步开始。

startMatlabAsync

开始异步MATLAB。

findmatlab.

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

findMatlabAsync

异步查找来自本地计算机的所有可用的Shared MATLAB会话。

connectmatlab.

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

connectmatlabasync.

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

getCurrentMatlab

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

成员变量

null_writer.

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

成员函数

函数宏指令

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

fevalAsync

使用异步评估MATLAB函数与参数。

eval

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

evalAsync

异步将MATLAB表达式评估为字符串。

GetVariable.

从Matlab Base工作区同时获取变量。

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(麦斯科斯), 或者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(麦斯科斯), 或者Matlab(Linux)

回报

的实例未来的< MatlabEngine >

例子
未来未来= matlabengine.startmatlabasync();

findmatlab.

静态字符串[] findmatlab()

描述

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

回报

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

抛出

com.mathworks.engine.EngineException

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

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

findMatlabAsync

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

描述

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

回报

的一个实例未来

例子
Future Future = MatlabEngine.findMatlabAsync();

connectmatlab.

static matlabengine connectmatlab(字符串名称)

静态matlabengine connectmatlab()

描述

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

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

  • 如果未指定名称,并且没有可用的共享MATLAB会话,则引擎启动具有默认选项的新共享MATLAB会话。

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

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

参数

字符串名称

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

回报

的一个实例MatlabEngine

抛出

com.mathworks.engine.EngineException

MATLAB无法启动或连接。

例子
matlabengine引擎= 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引擎= matlabengine.getcurrentmatlab();
另请参阅

从java调用回Matlab

函数宏指令

t feval(int nlhs,string func,writer输出,writer错误,对象... args)

t feval(int nlhs,string func,对象... args)

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

T feval(String func, Object…args)

描述

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

参数

字符串fun

要评估的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)

未来 fevalasync(String Func,Object ... args)

描述

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

参数

字符串fun

要评估的MATLAB函数或脚本的名称。

int nlhs.

预期产出数量。默认为1

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

如果nlhs0,返回的类型T必须是<空>或者<?>

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

作家输出

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

作者错误

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

对象……arg游戏

传递给matlab函数的参数。

回报

的一个实例未来

抛出

java.lang.IllegalStateException

MATLAB会话不可用。
例子
未来未来=引擎.Fevalasync(“SQRT”,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语句中有一个语法错误。

例子
Engine.eval(“结果= SQRT(4)”);

evalAsync

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

未来 evalasync(String命令)

描述

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

参数

字符串命令

Matlab声明评估。

作家输出

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

作者错误

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

回报

的一个实例未来

抛出

java.lang.IllegalStateException

MATLAB会话不可用。

例子
未来未来= Engine.evalasync(“SQRT(4)”);

GetVariable.

getVariable(String varname)

描述

从Matlab Base工作区获取变量。

参数

字符串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基础工作区中变量的名称。

回报

的一个实例未来

抛出

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会话不可用。

例子
Engine.putVariable(“Myvar”,100);

PutvariaBleasync.

未来 putVariableAsync(String varName, T varData)

描述

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

参数

字符串varName

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

T varData

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

回报

的一个实例未来

抛出

java.lang.IllegalStateException

MATLAB会话不可用。

例子
未来未来= Engine.putvariaBleAsync(“Myvar”,100);

断开连接

void disconnect()

描述

断开当前MATLAB会话的连接。

抛出

com.mathworks.engine.EngineException

当前的MATLAB会话无法断开。

例子
Engine.disconnect();

disconnectasync.

未来的< >空白disconnectAsync ()

描述

断开当前MATLAB会话的连接。

例子
Future Future = engine.disconnectAsync();

退出

void quit()

描述

强制关闭当前的MATLAB会话。

抛出

com.mathworks.engine.EngineException

当前的MATLAB会话无法关闭。

例子
Engine.quit();

quitAsync

未来 quitasync()

描述

强制在不等待终止的情况下异步地关闭当前的MATLAB会话。

回报

的一个实例未来

例子
Future Future = engine.quitAsync();

关闭

void 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