exponenta event banner

Создание кода MATLAB с одинарной точностью

В этом примере показано, как создать код MATLAB ® с одинарной точностью из кода MATLAB с двойной точностью .

Предпосылки

Чтобы завершить этот пример, установите следующие продукты:

Создание папки и копирование соответствующих файлов

  1. Создайте локальную рабочую папку, например: c:\ex_2ndOrder_filter.

  2. Изменение на docroot\toolbox\fixpoint\examples папка. В командной строке MATLAB введите:

    cd(fullfile(docroot, 'toolbox', 'fixpoint', 'examples')) 

  3. Копировать ex_2ndOrder_filter.m и ex_2ndOrder_filter_test.m в локальную рабочую папку.

    НапечататьИмяОписание
    Код функцииex_2ndOrder_filter.mНачальная функция MATLAB
    Тестовый файлex_2ndOrder_filter_test.m

    Сценарий MATLAB, который тестирует ex_2ndOrder_filter.m

     Функция ex_2ndOrder_filter

     Сценарий ex_2ndOrder_filter_test

Настройка объекта конфигурации с одинарной точностью

Создайте объект конфигурации с одинарной точностью. Укажите имя тестового файла. Проверьте код одинарной точности с помощью тестового файла. Постройте график ошибки между кодом с двойной точностью и кодом с одной точностью. Используйте значения по умолчанию для других свойств.

scfg = coder.config('single');
scfg.TestBenchName = 'ex_2ndOrder_filter_test';
scfg.TestNumerics = true;
scfg.LogIOForComparisonPlotting = true;

Создание кода MATLAB с одинарной точностью

Чтобы преобразовать функцию 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 с одинарной точностью

Чтобы просмотреть отчет о создании кода MATLAB с одинарной точностью, в окне команд:

  1. Прокрутите до Generate Single-Precision Code шаг. Щелкните ссылку Просмотр отчета.

  2. На панели «Источник MATLAB» щелкните ex_2ndOrder_filter_single.

В отчете о создании кода отображается код MATLAB с одинарной точностью для ex_2ndOrder_filter.

Просмотр потенциальных проблем с типом данных

При создании кода с одинарной точностью convertTosingle позволяет выделить потенциальные проблемы типа данных в отчетах о создании кода. Если convertTosingle невозможно удалить операцию двойной точности, отчет выделяет выражение MATLAB, которое приводит к операции. Перейдите на вкладку Анализ кода. Отсутствие потенциальных проблем с типами данных указывает на отсутствие операций двойной точности.

Сравнение переменных Double-Precision и Single-Precision

Можно просмотреть графики сравнения для входных данных. x и выходные данные y потому что вы выбрали для регистрации входные и выходные данные для сравнительных графиков.

См. также

| |

Связанные темы