getOutputDataTypeImpl

Класс: matlab.system.mixin.
Пакет: matlab.system.mixin

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

Синтаксис

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

Описание

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

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

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

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

Примечание

Вам необходимо задать Access = protected для этого метода.

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

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

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

obj

Системный объект

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

dt_1,dt_2,...

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

Примеры

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

Задайте в вашем файле определения класса, как управлять типом выходных данных от блока 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