Фиксированная точка для классов MATLAB

Автоматизированная поддержка преобразования классов MATLAB

Автоматизированный процесс преобразования фиксированной точки:

  • Предлагает типы данных с фиксированной точкой на основе областей значений симуляции для MATLAB® классы. Это не предлагает типов данных на основе выведенных областей значений для классов MATLAB.

    После симуляции, приложения Fixed-Point Converter:

    • Функциональный список содержит конструкторов класса, методы и специализации.

    • Окно кода отображает объекты, используемые в каждой функции.

    • Обеспечивает покрытие кода для методов.

    Для получения дополнительной информации смотрите информацию о Просмотре для Классов MATLAB.

  • Методы класса поддержек, свойства и специализации. Для каждой специализации класса, class_name, преобразование генерирует отдельный class_name_fixpt.m файл. Для каждого инстанцирования класса сгенерированная фиксированная точка содержит вызов конструктора соответствующей специализации.

  • Классы поддержек, которые имеют get и set методы, такие как get.PropertyName, set.PropertyName. Эти методы называются, когда свойства считаны или присвоены. set методы могут быть специализированы. Иногда, в сгенерированной фиксированной точке, операторы присваивания преобразовываются к вызовам функции.

Неподдерживаемые построения

Автоматизированный процесс преобразования не поддерживает:

  • Наследование классов.

  • Пакеты.

  • Конструкторы то использование nargin и varargin.

Лучшие практики стиля кодирования

Когда вы пишете код MATLAB, который использует классы MATLAB:

  • Инициализируйте свойства в конструкторе класса.

  • Замените постоянные свойства на статические методы.

Например, рассмотрите counter класс.

classdef Counter < handle
  properties
    Value = 0;
  end

  properties(Constant)
    MAX_VALUE = 128
  end
  
  methods
    function out = next(this)
      out = this.Count;
      if this.Value == this.MAX_VALUE
        this.Value = 0;
      else
        this.Value = this.Value + 1;
      end
    end
  end
end
Чтобы использовать автоматизированный процесс преобразования фиксированной точки, перепишите класс, чтобы иметь статический класс, который инициализирует постоянное свойство MAX_VALUE и конструктор, который инициализирует свойство Value.
classdef Counter < handle
  properties
    Value;
  end

  methods(Static)
    function t = MAX_VALUE()
      t = 128;
    end
  end
  
  methods
    function this = Counter()
      this.Value = 0;
    end 
    function out = next(this)
      out = this.Value;
      if this.Value == this.MAX_VALUE
        this.Value = 0;
      else
        this.Value = this.Value + 1;
      end
    end
  end
end