이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

속성 특성 정의하기

이 예제에서는 속성 특성을 지정하는 방법을 보여줍니다.

속성에 세부 정보를 추가하는 속성 특성은 속성에 대한 제어 계층을 제공합니다. MATLAB® 속성 특성 외에, System Object는 Nontunable, Logical, PositiveInteger의 세 가지 특성을 추가로 사용할 수 있습니다. 여러 특성을 지정하려면 특성을 쉼표로 구분하십시오.

속성을 조정 불가형으로 지정하기

데이터 처리가 시작된 후 알고리즘이 상수 값에 의존하는 경우 속성에 대한 Nontunable 특성을 사용합니다. 속성을 조정 불가형으로 정의하면 변경되는 값이 있는지 확인하거나 그러한 값에 반응할 필요가 없으므로 알고리즘의 효율성을 높일 수 있습니다. 코드 생성 시, 속성을 조정 불가형으로 정의하면 해당 속성과 관련된 메모리를 최적화할 수 있습니다. 입력 포트 개수 또는 출력 포트 개수에 영향을 미치는 모든 속성을 조정 불가형으로 정의해야 합니다.

System object™ 사용자는 객체를 호출하기 전이나 release 함수를 호출한 후에만 조정 불가형 속성을 변경할 수 있습니다. 이 예제에서는 InitialValue 속성을 조정 불가형으로 정의하고 그 값을 0으로 설정합니다.

properties (Nontunable)
   InitialValue = 0;
end

속성을 논리값으로 지정하기

논리 속성은 값 true 또는 false를 가집니다. System object 사용자는 1이나 0, 또는 논리값으로 변환할 수 있는 임의의 값을 입력할 수 있습니다. 그러나 값은 true 또는 false로 표시됩니다. 희소 논리값을 사용할 수 있지만 스칼라 값이어야 합니다. 이 예제에서 Increment 속성은 카운터를 증가할지를 나타냅니다. 기본적으로, Increment는 조정 가능형 속성입니다. Logical 특성을 가진 속성에는 다음 제한 사항이 적용됩니다.

  • Dependent 또는 PositiveInteger일 수 없습니다.

  • 디폴트 값은 true 또는 false여야 합니다. 1 또는 0을 디폴트 값으로 사용할 수 없습니다.

properties (Logical)
   Increment = true 
end

속성을 양의 정수로 지정하기

이 예제에서 프라이빗 속성 MaxValue는 양의 실수형 정수만 허용하도록 제한됩니다. 희소 값을 사용할 수 없습니다. PositiveInteger 특성을 가진 속성에는 다음 제한 사항이 적용됩니다.

  • Dependent 또는 Logical일 수 없습니다.

properties (PositiveInteger)
   MaxValue
end
         

속성을 DiscreteState로 지정하기

알고리즘에서 상태를 유지하는 속성을 사용하는 경우 이 속성에 DiscreteState 특성을 할당할 수 있습니다. 사용자가 getDiscreteState를 호출하면 이 특성이 있는 속성은 getDiscreteStateImpl을 통해 자신의 상태 값을 표시합니다. DiscreteState 특성을 가진 속성에는 다음 제한 사항이 적용됩니다.

  • 숫자형 값, 논리값 또는 fi 값임(단, 스케일링된 배정밀도 fi 값은 아님)

  • Nontunable, Dependent, Abstract, Constant 특성이 없음

  • 디폴트 값이 없음

  • 퍼블릭으로 설정할 수 없음

  • 기본적으로 GetAccess = Public

  • System object가 호출되면 setupImpl을 통해서만 설정되는 값임 (호출 순서 요약 항목 참조)

이 예제에서는 Count 속성을 이산 상태로 정의합니다.

properties (DiscreteState)
   Count;
end

속성 특성이 있는 완전한 클래스 정의 파일

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

관련 항목