getOutputSizeImpl

Размеры выхода портов

Синтаксис

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj)

Описание

[sz_1,sz_2,...,sz_n] = getOutputSizeImpl(obj) возвращает размер каждого выходного порта. Количество выходов должно совпадать со значением, возвращенным из getNumOutputs метод или количество выходных аргументов, перечисленных в stepImpl способ.

Если ваша Системная object™ имеет только один вход и один выход, и вы хотите, чтобы входные и выходные размеры были одинаковыми, вам не нужно реализовывать этот метод. В этом случае getOutputSizeImpl принимает, что входной и выходной размеры одинаковы, и возвращает размер входа. Для входов переменного размера в MATLAB®размер изменяется каждый раз, когда вы запускаете свой объект. Для входов переменного размера в Simulink®, размер выхода является максимальным размером входа.

Необходимо реализовать getOutputSizeImpl метод для определения выхода, если:

  • Ваш Системный объект имеет несколько входов или выходов

  • Вам нужно, чтобы выходные и входные размеры были различными.

    Если размер выхода отличается от размера входа, необходимо также использовать propagatedInputSize метод

Подробные сведения о выполнении

Во время компиляции и распространения модели Simulink блок MATLAB System вызывает getOutputSizeImpl метод определения выхода сигнала.

Все входы по умолчанию для входов переменного размера Для этих входов выходной размер является максимальным размером входного сигнала.

Советы по разработке методов

  • Вы должны задать Access = protected для этого метода.

  • В этом методе вы не можете изменять никакие свойства.

Входные параметры

расширить все

Указатель на системный объект используется для доступа к свойствам, состояниям и методам, характерным для объекта. Если ваш getOutputSizeImpl метод не использует объект, можно заменить этот вход на ~.

Выходные аргументы

расширить все

Вектор, содержащий размер каждого выходного порта.

Примеры

расширить все

Задайте в файле определения класса размер выхода системного объекта.

methods (Access = protected)
   function sz_1 = getOutputSizeImpl(obj)
      sz_1 = [1 1];
   end 
end

Укажите в файле определения класса размеры нескольких выходов системных объектов.

methods (Access = protected)
   function [sz_1,sz_2] = getOutputSizeImpl(obj) 
      sz_1 = propagatedInputSize(obj,1); 
      sz_2 = [1 1]; 
   end
 end 

Укажите в файле определения класса размер выхода Системного объекта, когда он зависит от распространенного размера входа.

methods (Access = protected)
   function varargout = getOutputSizeImpl(obj) 
      varargout{1} = propagatedInputSize(obj,1); 
      if obj.HasSecondOutput
         varargout{2} = [1 1];
      end
   end
end 
Введенный в R2013b