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
Была ли эта тема полезной?