非アクティブなプロパティの非表示
アクティブな System object™ プロパティのみを表示するには、isInactivePropertyImpl
メソッドを使用します。このメソッドは、プロパティが非アクティブかどうかを指定します。"非アクティブなプロパティ" は、他のプロパティの値があるために、System object に影響しないプロパティです。isInactiveProperty
メソッドをプロパティに渡し、このメソッドが true
を返すと、そのプロパティは非アクティブであり、関数 disp
の呼び出し時に表示されません。
非アクティブなプロパティの指定
この例では、isInactiveProperty
メソッドを使用して、依存プロパティの値を確認します。この System object の UseRandomInitialValue
が true に設定されている場合、InitialValue
プロパティは関係ありません。この 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