System object 情報の定義
この例では、表示する System object™ の情報を定義する方法を示します。
System object 情報の定義
独自の info
メソッドを定義して、System object の特定の情報を表示できます。既定の infoImpl
メソッドは空の struct を返します。この 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