Определение информации о системном объекте

Этот пример показывает, как задать информацию, чтобы отобразиться для Системы object™.

Определение информации о системном объекте

Можно задать собственный метод info, чтобы отобразить определенную информацию для Системного объекта. Метод 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

Смотрите также