主要内容

定义属性属性

属性的属性,它向属性添加详细信息,为属性提供控制层。另外还有MATLAB®属性属性和属性验证,系统对象可以使用NontunableDiscreteState.要指定多个属性,请用逗号分隔。

将属性指定为不可调优

默认情况下,所有属性都是可调,这意味着该属性的价值可以随时改变。

使用Nontunable当数据处理开始时,算法依赖于该值为常量时,该属性的。将属性定义为不可调优可能会提高算法的效率,因为不需要检查或对更改的值作出反应。对于代码生成,将属性定义为不可调优允许优化与该属性关联的内存。您应该将所有影响输入或输出端口数量的属性定义为不可调优。

使用System对象™时,只能在调用对象之前或调用释放函数。例如,您定义InitialValue属性为不可调优,并将其值设置为0。

属性(nontuning) InitialValue = 0;结束

指定属性为离散状态

如果算法使用保持状态的属性,则可以将这些属性赋值为DiscreteState属性。属性使用该属性显示它们的状态值getDiscreteStateImpl当用户调用getDiscreteState.属性的属性适用以下限制DiscreteState属性,

  • 数字、逻辑或fi值,但不是缩放的双fi值

  • 没有任何这些属性:Nontunable依赖摘要常数

  • 没有默认值

  • 没有公开可设置的

  • GetAccess =公共默认情况下

  • 如果将属性定义为离散状态,则不需要使用saveObjectImplloadObjectImpl

例如,您定义作为离散状态的属性:

属性(DiscreteState)数;结束

具有各种属性的示例类

这个例子展示了两个不可调优属性,一个离散状态属性,以及MATLAB类属性验证来设置属性属性。

classdef计数器< matlab。系统%计数器将计数器增加到最大值这些属性是不可调优的。它们无法改变在调用setup方法后或在对象正在运行。属性(Nontunable)%计数器的初始值InitialValue = 0%计数器的最大值,必须是一个正整数标量MaxValue(1,1) {mustBePositive, mustBeInteger}= 3结束属性是否增加计数器,必须是逻辑标量增量(1)逻辑= true结束属性(DiscreteState)统计状态变量结束方法(访问=保护)%增加计数器并返回其值%作为输出函数c = stepImpl (obj)如果obj。增量& & (obj。数< obj.MaxValue) obj.Count = obj.Count + 1;其他的disp ([“马克斯数”,num2str (obj.MaxValue)”,达到“])结束c = obj.Count;结束%设置Count状态变量函数setupImpl (obj) obj。数= 0;结束%将计数器重置为1。函数resetImpl (obj) obj。数= obj。InitialValue;结束结束结束

相关的话题