exponenta event banner

getOutputSizeImpl

Класс: matlab. Система

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

Синтаксис

[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 (Simulink) вызывает getOutputSizeImpl способ определения размера выходного сигнала.

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

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

  • Необходимо установить Access = protected для этого метода.

  • В этом методе невозможно изменить какие-либо свойства.

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

развернуть все

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

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

развернуть все

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

Примеры

развернуть все

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

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 

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

methods (Access = protected)
   function varargout = getOutputSizeImpl(obj) 
      varargout{1} = propagatedInputSize(obj,1); 
      if obj.HasSecondOutput
         varargout{2} = [1 1];
      end
   end
end 
Представлен в R2013b