你可以执行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.
。