Чтобы отобразить только активную Систему 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