主要内容

执行马铃薯来自java.

打电话马铃薯职能

你可以执行matlab®来自Java的功能®使用Matlabengine.Feval.Fevalasync.方法。这些方法就像matlab一样Feval.功能。用Feval.Fevalasync.当您想要将函数执行的结果返回到Java或传递Java的参数时。

要调用matlab函数:

  • 将函数名称作为字符串传递。

  • 定义MATLAB函数所需的输入参数。

  • 指定来自MATLAB函数的输出的数量(如果未指定,则假定1)。

  • 为MATLAB函数的输出定义适当的返回类型。

  • 使用作家从MATLAB命令窗口重定向到Java。

你也可以使用Matlabengine.求解evalasync.评估matlab表达的方法。这些方法使您可以在MATLAB工作区中创建变量,但不会返回值。

使用单个返回的参数执行函数

此示例代码使用MATLABSQRT.函数找到双打阵列中元素的平方根。这Feval.方法返回包含结果的双数组SQRT.函数调用。

导入com.mathworks.eengine。*;公共类javafevalfunc {public静态void main(string [] args)抛出异常{matlabengine eng = matlabengine.startmatlab();double [] a = {2.0,4.0,6.0};Double [] Roots = Eng.Feval(“SQRT”,a);for(Double E:Roots){system.out.println(e);} eng.Close();}}

执行多个返回参数的函数

此示例代码使用MATLABGCD.功能要找到最大的常见除容和bézout系数,从两个整数值传递为输入参数。这Feval.方法返回包含结果的对象数组GCD.函数调用。返回的值是整数。

因为matlab.GCD.函数正在返回三个输出参数,将返回值的数量指定为第一个参数Feval.方法。

导入com.mathworks.eengine。*;公共类javafevalfcnmulti {公共静态void main(string [] args)抛出异常{matlabengine eng = matlabengine.startmatlab();对象[]结果= Eng.Feval(3,“GCD”,40,60);整数g =(整数)结果[0];整数u =(整数)结果[1];整数v =(整数)结果[2];eng.Close();}}

何时指定输出参数的数量

Matlabengine.Feval.Fevalasync.方法使您可以指定MATLAB函数返回的输出参数的数量。默认情况下,假设MATLAB函数的输出参数的数量1

如果要调用没有输出或多个输出的MATLAB函数,请将该号码指定为传递给的第一个参数Feval.或者Fevalasync.

例如,此代码调用MATLABGCD.使用三个输出参数语法:

对象[]结果= Eng.Feval(3,“GCD”,40,60);

MATLAB函数可以根据要求的输出数量不同。某些功能可以返回任何输出或指定数量的输出。例如,matlab暂停函数保持执行指定的秒数。但是,如果你打电话暂停使用输出参数,函数立即返回状态值。因此,此代码不会导致MATLAB暂停,因为Feval.请求一个输出参数。

eng.feval(“暂停”,10);

要暂停请求的10秒的MATLAB执行,请指定输出的数量0.

eng.feval(0,“暂停”,10);

笔记

要确保不需要输出调用MATLAB函数,请指定返回的参数的数量0.

相关话题