主要内容

限制属性值为有限列表

当您想要用一组有限的可接受值来创建System对象™属性时,您可以使用枚举或属性验证。

对象中使用的System对象MATLAB系统在仿真软件金宝app®您可以使用枚举或属性验证。如果使用枚举,还可以从金宝app仿真软件。IntEnumType.您可以使用这种类型的枚举向MATLAB System块的输入或输出添加属性(例如自定义头)。看到在Simulink模型中使用枚举数据金宝app(金宝app模型)

地产验证mustBeMember

要使用属性验证来限制属性值,请使用mustBeMember验证功能。

此示例定义了风格属性可以具有这些值固体破折号,或.默认值为固体(1,1)将属性定义为标量。

属性(1,1)string {mustBeMember(Style, [)]“固体”“冲”“点”])} =“固体”结束
要支持金宝app不区分大小写的匹配,请使用matlab.system.mustBeMember代替。
属性样式(1,:)char {matlab.系统。mustBeMember(风格,“固体”“冲”“点”])} =“固体”结束

枚举属性

要在System对象中使用枚举数据,请引用枚举作为属性,并在单独的类定义文件中定义枚举类。

要创建一个枚举属性,你需要:

  • 设置为枚举类的System对象属性。

  • 定义属性的所有可能值的关联枚举类定义。

这个例子为System对象定义了一个颜色枚举属性。枚举类的定义ColorValues是:

classdefColorValues < int32枚举蓝(0)红(1)绿(2)结束结束
ColorValues类继承自int32用于代码生成兼容性。枚举值必须有效MATLAB标识符

在System对象中,颜色属性定义为ColorValues对象与蓝色的作为默认。的(1,1)定义了颜色属性作为标量:

属性颜色(1,1)ColorValues = ColorValues.blue结束

创建一个Whiteboard System对象

这个例子展示了类的定义白板系统对象™,有限列表属性的两种类型,以及如何使用对象。每次运行白板对象时,它都会在白板上画一条线。

的定义白板系统对象

类型Whiteboard.m
classdef白板< matlab。%属性(不可调)颜色(1,1)ColorValues = ColorValues。blue Style (1,1) string {mustBeMember(Style, ["solid","dash","dot"])} = "solid";end methods (Access = protected) function stepImpl(obj) h = Whiteboard.getWhiteboard();开关obj。风格case "solid" linestyle = "-"; case "dash" linestyle = "--"; case "dot" linestyle = ":"; end plot(h, randn([2,1]), randn([2,1]), ... "Color",string(obj.Color), "LineStyle",linestyle); end function releaseImpl(~) cla(Whiteboard.getWhiteboard()); hold on end end methods (Static) function a = getWhiteboard() h = findobj('tag','whiteboard'); if isempty(h) h = figure('tag','whiteboard'); hold on end a = gca; end end end

构造System对象。

greenInk =白板;blueInk =白板;

更改颜色并设置蓝色线条样式。

greenInk。颜色=“绿色”;blueInk。颜色=“蓝色”;blueInk。风格=“点”

画几条线。

i = 1:3 greenInk ();blueInk ();结束

Figure包含一个轴对象。axis对象包含6个类型为line的对象。

清除白板

释放(greenInk);释放(blueInk);

Figure包含一个轴对象。坐标轴对象为空。

相关的话题