Измените количество входных параметров

В этом примере показано, как определить номер входных параметров для Системы object™ с и не используя getNumInputsImpl.

Если у вас есть переменное количество вводов или выводов, и вы намереваетесь использовать Системный объект в Simulink®, необходимо включать getNumInputsImpl или getNumOutputsImpl метод в вашем определении класса.

Эти примеры показывают модификации для количества входных параметров. Если вы хотите изменить количество выходных параметров, те же принципы применяются.

Как со всем Системным объектом Impl методы, вы всегда устанавливаете getNumInputsImpl и getNumOutputsImpl доступ метода к protected потому что они - внутренние методы, которые никогда не называются непосредственно.

Позвольте до Трех Входных параметров

В этом примере показано, как записать Системный объект, который позволяет количеству входных параметров варьироваться.

Обновите stepImpl метод, чтобы принять до трех входных параметров путем добавления кода, чтобы обработать один, два, или три входных параметров. Если вы только используете этот Системный объект в MATLAB, 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

Запустите этот Системный объект с один, два, и три входных параметров.

addObj = AddTogether;
addObj(2)
ans =

     2

addObj(2,3)
ans =

     5

addObj(2,3,4)
ans =

     9

Управляйте количеством вводов и выводов со свойством

В этом примере показано, как записать Системный объект, который позволяет изменения в количестве вводов и выводов прежде, чем запустить объект. Используйте этот метод, когда ваш Системный объект будет включен в Simulink:

  • Добавьте ненастраиваемое свойство 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

Запустите этот Системный объект с один, два, и три входных параметров.

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

Смотрите также

|

Похожие темы