В этом примере показано, как создать код MATLAB ® с одинарной точностью из кода MATLAB с двойной точностью .
Чтобы завершить этот пример, установите следующие продукты:
MATLAB
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 шаг. Щелкните ссылку Просмотр отчета.
На панели «Источник MATLAB» щелкните ex_2ndOrder_filter_single.
В отчете о создании кода отображается код MATLAB с одинарной точностью для ex_2ndOrder_filter.
При создании кода с одинарной точностью convertTosingle позволяет выделить потенциальные проблемы типа данных в отчетах о создании кода. Если convertTosingle невозможно удалить операцию двойной точности, отчет выделяет выражение MATLAB, которое приводит к операции. Перейдите на вкладку Анализ кода. Отсутствие потенциальных проблем с типами данных указывает на отсутствие операций двойной точности.
Можно просмотреть графики сравнения для входных данных. x и выходные данные y потому что вы выбрали для регистрации входные и выходные данные для сравнительных графиков.


coder.config | coder.SingleConfig | convertToSingle