Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Definir atributos de propiedad

En este ejemplo se muestra cómo especificar atributos de propiedad.

, que agregan detalles a una propiedad, proporcionan una capa de control a las propiedades.Atributos de propiedad Además de los atributos de propiedad, los objetos de sistema pueden utilizar estos tres atributos adicionales:, y.MATLAB®NontunableLogicalPositiveInteger Para especificar varios atributos, sepárelos con comas.

Especifique la propiedad como no Sintonible

Use el atributo de una propiedad cuando el algoritmo depende del valor que es constante una vez que se inicia el procesamiento de datos.Nontunable La definición de una propiedad como no sintonible puede mejorar la eficacia de su algoritmo eliminando la necesidad de comprobar o reaccionar a los valores que cambian. Para la generación de código, la definición de una propiedad como no sintonizable permite optimizar la memoria asociada a esa propiedad. Debe definir todas las propiedades que afectan al número de puertos de entrada o de salida como no sintonible.

Los usuarios de la sólo pueden cambiar las propiedades no ajustables antes de llamar al objeto o después de llamar a la función.System object™release En este ejemplo, se define la propiedad como no sintonible y se establece su valor en 0.InitialValue

properties (Nontunable)    InitialValue = 0; end 

Especificar propiedad como lógica

Las propiedades lógicas tienen el valor o. los usuarios pueden introducirtruefalseSystem object 1 O 0 o cualquier valor que se pueda convertir en una lógica. El valor, sin embargo, se muestra como o.truefalse Puede utilizar valores lógicos dispersos, pero deben ser valores escalares. En este ejemplo, la propiedad indica si se aumenta el contador.Increment De forma predeterminada, es la propiedad sintonible.Increment Las siguientes restricciones se aplican a una propiedad con el atributo,Logical

  • Tampoco puede ser niDependentPositiveInteger

  • El valor predeterminado debe ser o.truefalse No puede usar o como valor predeterminado.10

properties (Logical)    Increment = true  end

Especificar propiedad como entero positivo

En este ejemplo, la propiedad Private está restringida para aceptar solo los enteros positivos reales.MaxValue No se pueden utilizar valores dispersos. La restricción siguiente se aplica a una propiedad con el atributo,PositiveInteger

  • Tampoco puede ser niDependentLogical

properties (PositiveInteger)    MaxValue end          

Especifique Property como DiscreteState

Si el algoritmo utiliza propiedades que tienen el estado, puede asignar esas propiedades el atributo.DiscreteState Las propiedades con este atributo muestran sus valores de estado a través de la getDiscreteStateImpl Cuando los usuarios llaman.getDiscreteState Las siguientes restricciones se aplican a una propiedad con el atributo,DiscreteState

  • Valor numérico, lógico o fi, pero no un valor de doble fi escalado

  • No tiene ninguno de estos atributos:,,,.NontunableDependentAbstractConstant

  • Ningún valor predeterminado

  • No puede ser públicamente configurable

  • por defectoGetAccess = Public

  • El valor establecido sólo a través de la setupImpl Cuando se llama.System object VerResumen de la secuencia de llamada

En este ejemplo, se define la propiedad como un estado discreto:Count

properties (DiscreteState)    Count; end 

Archivo de definición de clase completo con atributos de propiedad

classdef Counter < matlab.System % Counter Increment a counter to a maximum value    % These properties are nontunable. They cannot be changed    % after the setup method has been called or while the   % object is running.   properties (Nontunable)       % The initial value of the counter       InitialValue = 0   end   properties (Nontunable, PositiveInteger)       % The maximum value of the counter       MaxValue = 3   end      properties (Logical)       % Whether to increment the counter       Increment = true   end       properties (DiscreteState)       % Count state variable       Count   end          methods (Access = protected)       % Increment the counter and return its value       % as an output          function c = stepImpl(obj)           if obj.Increment && (obj.Count < obj.MaxValue)               obj.Count = obj.Count + 1;           else               disp(['Max count, ' num2str(obj.MaxValue) ' ,reached'])           end           c = obj.Count;       end              % Setup the Count state variable       function setupImpl(obj)           obj.Count = 0;       end              % Reset the counter to one.       function resetImpl(obj)           obj.Count = obj.InitialValue;       end   end end

Temas relacionados