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