В MATLAB® код, который вы хотите преобразовать в одинарную точность, это лучшая практика, чтобы использовать целые числа для индексных переменных. Однако, если код не использует целые числа для индексных переменных, когда это возможно convertToSingle пытается обнаружить индексные переменные и выбрать int32 типы для них.
assert ОператорыНе используйте assert операторы для определения свойств входных параметров.
Не используйте assert операторы для тестирования типа переменной. Для примера не используйте
assert(isa(a, 'double'))
Не инициализируйте свойства класса MATLAB в properties блок. Вместо этого используйте конструктор, чтобы инициализировать свойства класса.
Отделите свой основной алгоритм от другого кода, который вы используете для тестирования и проверки результатов. Создайте тестовый файл, который вызывает ваш алгоритм MATLAB с двойной точностью. Можно использовать тестовый файл для:
Автоматически задайте свойства входных параметров функции верхнего уровня.
Проверьте, что алгоритм двойной точности ведет себя, как вы ожидаете. Поведение с двойной точностью является базовой линией, с которой вы сравниваете поведение версий алгоритма с одной точностью.
Сравните поведение версии алгоритма с одной точностью с базовой линией с двойной точностью.
Для достижения наилучших результатов в тестовом файле должен быть реализован алгоритм в полной рабочей области значений.
Код MATLAB, который вы хотите преобразовать в одинарную точность, должен соответствовать требованиям генерации кода. Смотрите функции языка MATLAB, поддерживаемые для генерации кода C/C + +.
Чтобы помочь вам идентифицировать неподдерживаемые функции или конструкции в коде MATLAB, добавьте %#codegen прагма в верхнюю часть файла MATLAB. При редактировании кода в редакторе MATLAB КОД MATLAB Analyzer помечает функции и конструкции, которые не поддерживаются для генерации кода. См. раздел «Проверка кода с использованием анализатора кода MATLAB». Когда вы используете приложение MATLAB Coder™, приложение просматривает ваш код на предмет готовности генерации кода. В функциональной линии можно использовать Генерацию кода Инструмента Readiness. См. Раздел «Проверка кода с использованием инструмента подготовки генерации кода».
-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;