主要内容

使用MATLAB结构Java

MATLAB结构

MATLAB®结构包含数据并使用字段名引用它。每个字段可以包含任何类型的数据。MATLAB代码访问数据结构使用点表示法的形式structName.fieldName.本类的一个结构是MATLAB结构体

Java®com.mathworks.matlab.types.Struct类使您能够:

  • 创建一个结构体并将其传递给MATLAB。

  • 创建一个MATLAB结构体并返回到Java。

com.mathworks.matlab.types.Struct类实现了java.util.Map接口。属性的映射、键或值不能更改结构体从MATLAB回来。

通过结构体MATLAB函数

MATLAB函数设置MATLAB图形对象的属性。在一次调用中设置多个属性,使用MATLAB方便结构体.定义这个结构体使用与要设置的属性名称相匹配的字段名。字段引用的值是分配给属性的值。

此示例代码执行以下步骤:

  • MATLAB开始。

  • 将双数组传递给MATLAB情节函数。

  • 将MATLAB句柄对象作为com.mathworks.matlab.types.HandleObject

  • 创建一个com.mathworks.matlab.types.Struct使用属性名和值。

  • 创建一个MATLAB图形并显示它5秒。

  • 通过HandleObject结构体MATLAB的函数使用函数宏指令.这个函数改变绘制数据的颜色和线宽。

  • 将plot导出到jpeg文件命名myPlot并关闭引擎连接。

进口com.mathworks.engine。*;进口com.mathworks.matlab.types。*;public class CreateStruct {public static void main(String[] args) throws Exception {MatlabEngine eng = MatlabEngine. startmatlab ();Double [] y = {1.0, 2.0, 3.0, 4.0, 5.0};HandleObject h = eng。函数宏指令(“阴谋”,y);eng.eval(“暂停(5)”);Double [] color = {1.0, 0.5, 0.7};Struct s = new Struct("Color", Color, "LineWidth", 2);eng。函数宏指令(“套”,h, s); eng.eval("print('myPlot', '-djpeg')"); eng.close(); } }

得到结构MATLAB

MATLAB函数为图形创建坐标轴并返回句柄对象引用。MATLAB得到函数,当调用一个输出时,返回一个MATLAB结构体使用图形对象的属性。

这个示例代码:

  • 创建一个MATLAB图形对象并返回对象句柄HandleObject

  • 创建一个MATLAB结构,其中包含图形对象的属性和值,并将其作为结构体

  • 的值字体名财产的结构体

  • 试图改变的值字体名钥匙,这就Un万博1manbetxsupportedOperationException因为结构体是无法改变的。

进口com.mathworks.engine。*;进口com.mathworks.matlab.types。*;public class GetStruct {public static void main(String[] args) throws Exception {MatlabEngine eng = MatlabEngine. startmatlab ();HandleObject h = eng.feval("axes");Struct s =函数宏指令("get", h); Object fontName = s.get("FontName"); System.out.println("The font name is " + fontName.toString()); try { s.put("FontName", "Times"); }catch(UnsupportedOperationException e){ e.printStackTrace(); } eng.close(); } }

相关的话题