Hide Inactive Properties - MATLAB & Simulink (original) (raw)
Main Content
To display only active System objectâ„¢ properties, use the isInactivePropertyImpl method. This method specifies whether a property is inactive. An inactive property is a property that does not affect the System object because of the value of other properties. When you pass theisInactiveProperty
method a property and the method returnstrue
, then that property is inactive and does not display when thedisp
function is called.
Specify Inactive Property
This example uses the isInactiveProperty
method to check the value of a dependent property. For this System object, the InitialValue
property is not relevant if theUseRandomInitialValue
property is set to true. ThisisInactiveProperty
method checks for that situation and ifUseRandomInitialValue
is true
, returnstrue
to hide the inactive InitialValue
property.
methods (Access = protected) function flag = isInactivePropertyImpl(obj,propertyName) if strcmp(propertyName,'InitialValue') flag = obj.UseRandomInitialValue; else flag = false; end end end
Complete Class Definition File with Inactive Properties Method
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