В коде MATLAB ®, который требуется преобразовать в единичную точность, рекомендуется использовать целые числа для индексных переменных. Однако, если код не использует целые числа для индексных переменных, по возможностиconvertToSingle пытается обнаружить переменные индекса и выбрать int32 типы для них.
assert ЗаявленияНе использовать assert для определения свойств входных аргументов.
Не использовать assert для проверки типа переменной. Например, не использовать
assert(isa(a, 'double'))
Не инициализировать свойства класса MATLAB в properties блок. Вместо этого используйте конструктор для инициализации свойств класса.
Отделите основной алгоритм от другого кода, используемого для тестирования и проверки результатов. Создайте тестовый файл, вызывающий алгоритм MATLAB двойной точности. Тестовый файл можно использовать для:
Автоматически определять свойства входов функций верхнего уровня.
Убедитесь, что алгоритм двойной точности работает так, как ожидалось. Поведение двойной точности - это базовая линия, по которой сравнивается поведение версий алгоритма с одной точностью.
Сравните поведение версии алгоритма с одной точностью с базовой линией с двойной точностью.
Для достижения наилучших результатов тестовый файл должен использовать алгоритм в полном рабочем диапазоне.
Код MATLAB, который требуется преобразовать в единую точность, должен соответствовать требованиям к созданию кода. См. раздел Языковые функции MATLAB, поддерживаемые для генерации кода C/C + +.
Чтобы определить неподдерживаемые функции или конструкции в коде MATLAB, добавьте %#codegen pragma в верхней части файла MATLAB. При редактировании кода в редакторе MATLAB анализатор кода MATLAB помечает функции и конструкции, которые не поддерживаются при создании кода. См. раздел Проверка кода с помощью анализатора кода MATLAB. При использовании приложения MATLAB Coder™ приложение просматривает код для обеспечения готовности к созданию кода. В строке функции можно использовать инструмент готовности к созданию кода. См. раздел Проверка кода с помощью инструмента готовности к созданию кода.
-args Параметр для задания входных свойствПри создании кода MATLAB с одинарной точностью, если указан тестовый файл, нет необходимости указывать свойства аргумента с помощью -args вариант. В этом случае генератор кода запускает тестовый файл для определения свойств входных типов. Однако запуск тестового файла может замедлить формирование кода. Рекомендуется передавать свойства в -args вариант так, чтобы convertToSingle не запускает тестовый файл для определения свойств аргумента. При наличии лицензии MATLAB Coder можно использовать coder.getArgTypes для определения свойств аргумента. Например:
types = coder.getArgTypes('myfun_test', 'myfun'); scfg = coder.config('single'); convertToSingle -config scfg -args types myfun
При использовании функции ConvertToSingle для создания кода MATLAB с одинарной точностью включите числовое тестирование и ведение журнала данных ввода-вывода для графиков сравнения. Для использования числового тестирования необходимо предоставить тестовый файл, вызывающий функцию MATLAB. Чтобы включить числовое тестирование и ведение журнала данных ввода-вывода, создайте coder.SingleConfig объект. Установите TestBenchName, TestNumerics, и LogIOForComparisonPlotting свойства. Например:
scfg = coder.config('single'); scfg.TestBenchName = 'mytest'; scfg.TestNumerics = true; scfg.LogIOForComparisonPlotting = true;