В 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;