Main Content

비활성 속성 숨기기

활성 System object™ 속성만 표시하려면 isInactivePropertyImpl 메서드를 사용하십시오. 이 메서드는 속성이 비활성인지 여부를 지정합니다. 비활성 속성은 다른 속성 값으로 인해 System object에 영향을 주지 않는 속성입니다. isInactiveProperty 메서드를 속성에 전달할 경우 메서드가 true를 반환하면 이 속성은 비활성 상태이기 때문에 disp 함수가 호출될 때 표시되지 않습니다.

비활성 속성 지정하기

이 예제에서는 isInactiveProperty 메서드를 사용하여 종속 속성 값을 확인합니다. 이 System object에 대해 UseRandomInitialValue 속성이 true로 설정된 경우 InitialValue 속성은 아무런 영향을 주지 않습니다. isInactiveProperty 메서드는 이런 상황을 확인하고 UseRandomInitialValuetrue이면, 비활성 InitialValue 속성이 표시되지 않도록 true를 반환합니다.

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

참고 항목