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