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

Тип данных выходной шины должен быть задан заранее. propagatedInputDataType метод не поддерживает распространение типов данных шины к типу выходных данных.

Введенный в R2013b