Автоматизированный процесс преобразования фиксированной точки:
Предлагает типы данных фиксированной точки на основе областей значений моделирования для классов MATLAB®. Это не предлагает типов данных на основе выведенных областей значений для классов MATLAB.
После моделирования, приложения MATLAB Coder™:
Функциональный список содержит конструкторов класса, методы и специализации.
Окно кода отображает объекты, используемые в каждой функции.
Обеспечивает покрытие кода для методов.
Для получения дополнительной информации смотрите информацию о Просмотре для Классов MATLAB.
Методы класса поддержек, свойства и специализации. Для каждой специализации класса, class_name
, преобразование генерирует отдельный файл class_name_fixpt.m
. Для каждого инстанцирования класса сгенерированная фиксированная точка содержит вызов конструктора соответствующей специализации.
Классы поддержек, которые имеют get
и методы set
, такие как get.PropertyName
, set.PropertyName
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