一些matlab.®功能接受A.塑造
名称 - 值对作为输入参数。用于Java的Matlab引擎API®提供com.mathworks.matlab.engine.struct.Struct.
类以在Java中创建此数据结构并将其传递给Matlab,它将其转换为Matlab塑造
。
一些Matlab函数接受塑造
输入需要字段值是MATLAB字符向量(char
)而不是matlab字符串(细绳
)。创建一个java塑造
使用正确类型的值,转换为细绳
至char
在将变量传递给MATLAB之前的数组。
你可以使用Tochararray.
转换方法:
char [] in =“on”.tharaRarray();char [] yout =“yout”.techararray();char [] tout =“tout”.techararray();struct simparam = new struct(“saveoutput”,on,“outputsavename”,yout,“saveTime”,on,“timeavename”,tout);
当MATLAB功能需要时char
输入,您可以转换Java细绳
在函数调用中传递给matlab。例如,matlab求解
功能需要char
输入:
双重结果=引擎。reval(“eval”,“3 + 5”);用于“字符串”类型的输入参数的未定义功能'eval'。。
通过Achar
阵列正常工作。
双重结果=引擎。reval(“eval”,“3 + 5”.techararray());
您可以使用对象的句柄设置MATLAB图形对象属性的值。将属性名称和属性值传递为Javachar
传递给Matlab函数时数组。
double [] [] data = {{1.0,2.0,3.0},{-1.0,-2.0,-3.0}};handleObject [] h = eng.feval(“plot”,(对象)数据);字符串属性=(“hittest”);字符串值=(“关”);eng.feval(0,“set”,h,property.toCharArray(),value.toCharArray());
一些matlab功能,如SQRT.
限制输入双倍的
或者单身的
精度值。Matlab引擎将Java Integers转换为MatlabINT32.
价值观。对于不接受整数值的MATLAB函数,请确保通过适当的数值。
双重结果=引擎.Feval(“SQRT”,4);用于输入参数的未定义函数'sqrt'类型'int32'的输入参数。
正确通过双重工作。
双重结果=引擎.Feval(“SQRT”,4.0);