主要内容

执行MATLAB函数从Java

调用MATLAB功能

您可以执行MATLAB®从Java函数®使用MatlabEngine函数宏指令fevalAsync方法。这些方法的工作像MATLAB函数宏指令函数。使用函数宏指令fevalAsync当您想要返回结果的函数执行Java或从Java传递参数。

调用MATLAB函数:

  • 通过函数名作为字符串。

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

  • 指定输出的数量预计从MATLAB函数(1假设如果不是指定)。

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

  • 使用作家将MATLAB命令窗口的输出重定向到Java。

您还可以使用MatlabEngineevalevalAsyncMATLAB方法评估表达式。这些方法使您能够在MATLAB工作区创建变量,但不返回值。

执行函数与单返回参数

这个示例代码使用MATLAB√6函数来找到数组中元素的平方根的双打。的函数宏指令方法返回一个数组包含结果的两倍√6函数调用。

进口com.mathworks.engine。*;公开课javaFevalFunc{公共静态空main (String [] args)抛出异常{MatlabEngine eng = MatlabEngine.startMatlab ();双重[]= {2.0,4.0,6.0};[]= eng根的两倍。函数宏指令“√”);(双e:根){System.out.println (e);}eng.close ();}}

执行函数返回多个参数

这个示例代码使用MATLAB肾小球囊性肾病函数来找到两个整数的最大公约数和Bezout系数值作为输入参数传递。的函数宏指令方法返回一个对象数组,其中包含的结果肾小球囊性肾病函数调用。返回的值是整数。

由于MATLAB肾小球囊性肾病函数返回三个输出参数,指定数量的返回值作为第一个参数函数宏指令方法。

进口com.mathworks.engine。*;公开课javaFevalFcnMulti{公共静态空main (String [] args)抛出异常{MatlabEngine eng = MatlabEngine.startMatlab ();对象= eng[]的结果。函数宏指令(3, "gcd", 40, 60); Integer G = (Integer)results[0]; Integer U = (Integer)results[1]; Integer V = (Integer)results[2]; eng.close(); } }

当指定数量的输出参数

MatlabEngine函数宏指令fevalAsync方法使您能够指定数量的输出参数返回的MATLAB函数。默认情况下,输出参数的数量从MATLAB函数被认为是1

如果你想调用MATLAB函数没有输出或一个以上的输出,作为第一个参数传递到指定号码函数宏指令fevalAsync

例如,这段代码调用MATLAB肾小球囊性肾病函数的三个输出参数的语法:

对象= eng[]的结果。函数宏指令(3, "gcd", 40, 60);

MATLAB函数可以表现不同的数量取决于输出要求。一些函数可以返回任何输出或指定数量的输出。例如,MATLAB暂停函数将执行指定的秒数。然而,如果你的电话暂停和一个输出参数,函数立即返回状态值。因此,这段代码不会引起MATLAB暂停,因为函数宏指令请求一个输出参数。

eng。函数宏指令(“暂停”,10);

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

eng。函数宏指令(0,“暂停”,10);

请注意

确保调用MATLAB函数没有输出,指定数量的返回参数0

相关的话题