Сгенерируйте код 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. Щелкните по ссылке View report.

  2. В панели MATLAB Source нажмите ex_2ndOrder_filter_single.

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

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

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

Сравните переменные с одинарной точностью и с двойной точностью

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

Смотрите также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте