主要内容

不正确的Java数据类型

Java字符串MATLAB特征向量

字符向量的结构

一些MATLAB®函数接受一个结构体的名称-值对作为输入参数。用于Java的MATLAB引擎API®提供了com.mathworks.matlab.engine.Struct类以在Java中创建此数据结构并将其传递给MATLAB,在MATLAB中将其转换为MATLAB结构体

一些MATLAB函数接受结构体输入要求字段值为MATLAB字符向量(字符)而不是MATLAB字符串(字符串).要创建Java结构体使用正确的值类型,转换为字符串字符数组,然后将变量传递给MATLAB。

你可以使用toCharArray转换方法:

char[] on = "on".toCharArray();char[] yOut = "yOut".toCharArray();char[] tOut = "tOut".toCharArray();Struct simParam = new Struct("SaveOutput", on, "OutputSaveName", yOut,"SaveTime", on, "TimeSaveName", tOut);

字符向量的字符串参数

当MATLAB函数需要字符输入时,您可以转换Java字符串在函数调用中传递给MATLAB。例如,MATLABeval功能要求字符输入:

Double result = engine。函数宏指令(“eval”,“3 + 5”);未定义函数'eval'用于输入类型为'string'的参数。

传递一个字符阵列工作正常。

Double result = engine。函数宏指令(“eval”、“3 + 5”.toCharArray ());

从设置图形对象属性Java

您可以使用对象的句柄来设置MATLAB图形对象属性的值。将属性名和属性值作为Java传递字符数组传递给MATLAB函数时。

双[][]data = {{1.0, 2.0, 3.0}, {-1.0, -2.0, -3.0}};HandleObject[] h = eng。函数宏指令(“阴谋”,(对象)数据);字符串属性=(“HitTest”);字符串值= ("off");eng。feval(0,"set", h, property.toCharArray(), value.toCharArray());

Java整数MATLAB

一些MATLAB函数,如√6将输入限制为精度值。MATLAB引擎将Java整数转换为MATLABint32值。对于不接受整数值的MATLAB函数,请确保传递适当的数值。

Double result = engine。函数宏指令“√”,4);未定义函数'sqrt'用于输入类型为'int32'的参数。

传递double值是正确的。

Double result = engine。函数宏指令“√”,4.0);

相关的话题