Main Content

System object 정보 정의하기

이 예제에서는 System object™에 대해 표시할 정보를 정의하는 방법을 보여줍니다.

System object 정보 정의하기

System object에 대한 구체적인 정보를 표시하도록 자체 info 메서드를 정의할 수 있습니다. 디폴트 infoImpl 메서드는 빈 구조체를 반환합니다. 이 infoImpl 메서드는 info 메서드가 info(x,'details')를 사용하여 호출될 경우 자세한 정보를 반환하고 info(x)를 사용하여 호출될 경우 카운트 정보만 반환합니다.

methods (Access = protected)
   function s = infoImpl(obj,varargin)
      if nargin>1 && strcmp('details',varargin(1))
         s = struct('Name','Counter',
             'Properties', struct('CurrentCount',obj.Count, ...
             'Threshold',obj.Threshold));
      else
         s = struct('Count',obj.Count);
      end
   end
end

InfoImpl이 있는 완전한 클래스 정의 파일

classdef Counter < matlab.System
   % Counter Count values above a threshold
   
   properties
      Threshold = 1
   end
   
   properties (DiscreteState)
      Count
   end
   
   methods (Access = protected)
      function setupImpl(obj)
         obj.Count = 0;
      end
       
      function resetImpl(obj)
         obj.Count = 0;
      end
       
      function y = stepImpl(obj,u)
         if (u > obj.Threshold)
            obj.Count = obj.Count + 1;
         end
         y = obj.Count;
      end
     
      function s = infoImpl(obj,varargin)
         if nargin>1 && strcmp('details',varargin(1))
            s = struct('Name','Counter',...
            'Properties', struct('CurrentCount', ...
            obj.Count,'Threshold',obj.Threshold));
         else
            s = struct('Count',obj.Count);
         end
      end
   end
end

참고 항목