입력값 개수 변경하기
이 예제에서는 getNumInputsImpl
을 사용하는 경우와 사용하지 않는 경우에 System Object™에 대한 입력값 개수를 설정하는 방법을 보여줍니다.
입력값 개수나 출력값 개수가 가변적인 경우 Simulink®에서 System Object를 사용하려면, 클래스 정의에 getNumInputsImpl
메서드 또는 getNumOutputsImpl
메서드를 포함시켜야 합니다.
이 예제에서는 입력값 개수를 수정하는 경우를 보여줍니다. 출력값 개수를 변경하려는 경우에도 동일한 원리가 적용됩니다.
모든 System Object Impl
메서드와 마찬가지로, getNumInputsImpl
메서드와 getNumOutputsImpl
메서드는 직접 호출되지 않는 내부 메서드이므로 이들 메서드의 액세스를 항상 protected
로 설정하십시오.
최대 세 개의 입력값 허용하기
이 예제에서는 입력값 개수를 변경할 수 있는 System Object를 작성하는 방법을 보여줍니다.
1개, 2개 또는 3개 입력값을 처리하는 코드를 추가하여 최대 세 개의 입력값을 받도록 stepImpl
메서드를 업데이트합니다. MATLAB에서 이 System Object만 사용하는 경우 getNumInputsImpl
과 getNumOutputsImpl
은 필요하지 않습니다.
전체 클래스 정의
classdef AddTogether < matlab.System % Add inputs together methods (Access = protected) function y = stepImpl(~,x1,x2,x3) switch nargin case 2 y = x1; case 3 y = x1 + x2; case 4 y = x1 + x2 + x3; otherwise y = []; end end end end
1개, 2개, 3개 입력값으로 이 System Object를 실행합니다.
addObj = AddTogether; addObj(2)
ans = 2
addObj(2,3)
ans = 5
addObj(2,3,4)
ans = 9
속성을 사용하여 입력값 개수와 출력값 개수 제어하기
이 예제에서는 System Object를 실행하기 전에 입력값 개수와 출력값 개수를 변경할 수 있는 System Object를 작성하는 방법을 보여줍니다. Simulink에 System Object가 포함되는 경우 다음 방법을 사용하십시오.
입력값 개수를 제어하는 조정 불가형 속성
NumInputs
를 추가합니다.관련
getNumInputsImpl
메서드를 구현하여 입력값 개수를 지정합니다.
전체 클래스 정의
classdef AddTogether2 < matlab.System % Add inputs together. The number of inputs is controlled by the % nontunable property |NumInputs|. properties (Nontunable) NumInputs = 3; % Default value end methods (Access = protected) function y = stepImpl(obj,x1,x2,x3) switch obj.NumInputs case 1 y = x1; case 2 y = x1 + x2; case 3 y = x1 + x2 + x3; otherwise y = []; end end function validatePropertiesImpl(obj) if ((obj.NumInputs < 1) ||... (obj.NumInputs > 3)) error("Only 1, 2, or 3 inputs allowed."); end end function numIn = getNumInputsImpl(obj) numIn = obj.NumInputs; end end end
1개, 2개, 3개 입력값으로 이 System Object를 실행합니다.
addObj = AddTogether2; addObj.NumInputs = 1; addObj(2)
ans = 2
release(addObj); addObj.NumInputs = 2; addObj(2,3)
ans = 5
release(addObj); addObj.NumInputs = 3; addObj(2,3,4)
ans = 9
참고 항목
getNumInputsImpl
| getNumOutputsImpl