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