Чтобы отобразить только активную Систему object™ свойства, используйте метод isInactivePropertyImpl. Этот метод задает, неактивно ли свойство. Неактивное свойство является свойством, которое не влияет на Системный объект из-за значения других свойств. Когда вы передаете метод isInactiveProperty, свойство и метод возвращают true, затем то свойство неактивно и не отображается, когда функция disp вызвана.
Этот пример использует метод isInactiveProperty, чтобы проверять значение подчиненное свойство. Для этого Системного объекта свойство InitialValue не релевантно, если свойство UseRandomInitialValue установлено в истину. Этот метод isInactiveProperty проверяет на ту ситуацию и если UseRandomInitialValue является true, возвращает true, чтобы скрыть неактивное свойство InitialValue.
methods (Access = protected) function flag = isInactivePropertyImpl(obj,propertyName) if strcmp(propertyName,'InitialValue') flag = obj.UseRandomInitialValue; else flag = false; end end end
classdef Counter < matlab.System % Counter Increment a counter % These properties are nontunable. They cannot be changed % after the setup method has been called or when the % object is running. properties (Nontunable) % Allow the user to set the initial value UseRandomInitialValue = true InitialValue = 0 end % The private count variable, which is tunable by default properties (Access = private) pCount end methods (Access = protected) % Increment the counter and return its value % as an output function c = stepImpl(obj) obj.pCount = obj.pCount + 1; c = obj.pCount; end % Reset the counter to either a random value or the initial % value. function resetImpl(obj) if obj.UseRandomInitialValue obj.pCount = rand(); else obj.pCount = obj.InitialValue; end end % This method controls visibility of the object's properties function flag = isInactivePropertyImpl(obj,propertyName) if strcmp(propertyName,'InitialValue') flag = obj.UseRandomInitialValue; else flag = false; end end end end