В этом примере показано, как сгенерировать 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