getOutputDataTypeImpl

Типы данных портов выхода

Синтаксис

[dt_1,dt_2,...,dt_n] = getOutputDataTypeImpl(obj)

Описание

[dt_1,dt_2,...,dt_n] = getOutputDataTypeImpl(obj) возвращает тип данных каждого выходного порта как вектор символов для встроенных типов данных или как числовой объект для типов данных с фиксированной точкой. Количество выходов должно совпадать со значением, возвращенным из getNumOutputsImpl метод или количество выходных аргументов, перечисленных в stepImpl способ.

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

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

При необходимости определения типа выходных данных можно использовать propagatedInputDataType в рамках getOutputDataTypeImpl метод для получения типа входа.

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

getOutputDataTypeImpl вызывается блоком MATLAB System.

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

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

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

  • Если вы отлаживаете код и исследуете типы данных до завершения распространения Simulink, вы можете увидеть выходы с пустыми типами данных []. Это происходит из-за того, что Simulink не завершил установку типов выходных данных.

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

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

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

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

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

Тип данных свойства. Для встроенных типов данных, dt является вектор символов. Для типов данных с фиксированной точкой, dt является объектом числового типа.

Примеры

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

Задайте, в файле определения класса, как управлять типом выходных данных из MATLAB® System блок. В этом примере показано, как использовать getOutputDataTypeImpl метод, чтобы изменить тип выходных данных с одинарного на двойной, или распространить вход как двойной. Это также показывает, как привести тип данных, чтобы изменить тип выходных данных в stepImpl способ.

classdef DataTypeChange < matlab.System & ...
  matlab.system.mixin.Propagates

   properties(Nontunable)
      Quantize = false
   end

   methods(Access = protected)
      function y = stepImpl(obj,u)
         if obj.Quantize == true
            % Cast for output data type to differ from input.
            y = single(u);
         else
            % Propagate output data type.
            y = u;
         end
      end

      function out = getOutputDataTypeImpl(obj)
         if obj.Quantize == true
            out = "single";
         else
            out = propagatedInputDataType(obj,1);
         end
      end
   end
end

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

properties(Nontunable)
   OutputBusName = "myBus";
end

methods (Access = protected)
   function out = getOutputDataTypeImpl(obj)
      out = obj.OutputBusName;
   end
end
Введенный в R2013b