В этом примере показано, как сгенерировать MATLAB с одной точностью® код из кода MATLAB с двойной точностью.
Чтобы завершить этот пример, установите следующие продукты:
MATLAB
Fixed-Point Designer™
Компилятор C
См. «Поддерживаемые компиляторы».
Можно использовать mex -setup
для изменения компилятора по умолчанию. См. Раздел «Изменение компилятора по умолчанию».
Создайте локальную рабочую папку, например c:\ex_2ndOrder_filter
.
Измените на docroot\toolbox\fixpoint\examples
папка. В командной строке MATLAB введите:
cd(fullfile(docroot, 'toolbox', 'fixpoint', 'examples'))
Скопируйте ex_2ndOrder_filter.m
и ex_2ndOrder_filter_test.m
файлы в локальную рабочую папку.
Напечатать | Имя | Описание |
---|---|---|
Код функции | ex_2ndOrder_filter.m | Функция MATLAB точки входа |
Тестовый файл | ex_2ndOrder_filter_test.m | Скрипт MATLAB, который тестирует |
Создайте объект строения с одной точностью. Укажите имя тестового файла. Проверьте код с одной точностью с помощью тестового файла. Постройте график ошибки между кодом двойной точности и кодом одинарной точности. Используйте значения по умолчанию для других свойств.
scfg = coder.config('single'); scfg.TestBenchName = 'ex_2ndOrder_filter_test'; scfg.TestNumerics = true; scfg.LogIOForComparisonPlotting = true;
Чтобы преобразовать функцию MATLAB с двойной точностью, ex_2ndOrder_filter
, для одноточного кода MATLAB, используйте convertToSingle
convertToSingle -config scfg ex_2ndOrder_filter
convertToSingle
анализирует код двойной точности. Процесс преобразования выводит типы путем запуска тестового файла, потому что вы не указали входные типы для ex_2ndOrder_filter
функция. Процесс преобразования выбирает типы с одной точностью для переменных с двойной точностью. Он выбирает int32
для индексных переменных. Когда преобразование завершено, convertToSingle
генерирует отчет по предложению типа.
Чтобы просмотреть типы, выбранные для переменных в процессе преобразования, откройте отчет предложения типа для ex_2ndOrder_filter
функция. Щелкните ссылку ex_2ndOrder_filter_report.html
.
Отчет откроется в веб-браузере. Процесс преобразования преобразован:
Переменные двойной точности в single
.
Область индекса i
на int32
. Процесс преобразования приводит переменные индекса и размерности к int32
.
Чтобы просмотреть отчет о генерации кода MATLAB с одной точностью, в Командном окне:
Прокрутка до Generate Single-Precision Code
шаг. Щелкните ссылку View report.
На панели MATLAB Source нажмите ex_2ndOrder_filter_single
.
В отчете о генерации кода отображается код MATLAB с одной точностью для ex_2ndOrder_filter
.
Когда вы генерируете код с одной точностью, convertTosingle
позволяет выделять потенциальные проблемы типа данных в отчетах генерации кода. Если convertTosingle
невозможно удалить операцию двойной точности, в отчете подсвечивается выражение MATLAB, которое приводит к операции. Перейдите на вкладку Code Insights. Отсутствие потенциальных проблем с типом данных указывает, что никаких операций двойной точности не остается.
Можно увидеть графики сравнения для входа x
и выход y
поскольку вы выбрали для регистрации входных и выходных параметров для графиков сравнения.
coder.config
| coder.SingleConfig
| convertToSingle