В этом примере показано, как создать код C с одинарной точностью из кода MATLAB ® с двойной точностью с помощью приложения MATLAB Coder™.
Чтобы завершить этот пример, установите следующие продукты:
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, который тестирует |
Перейдите к рабочей папке, содержащей файл для этого примера.
На вкладке Приложения MATLAB Toolstrip в разделе Создание кода щелкните значок приложения.
Добавление функции точки входа ex_2ndOrder_filter в проект, перейдите к файлу ex_2ndOrder_filter.mи нажмите кнопку Открыть. По умолчанию приложение сохраняет информацию и параметры этого проекта в текущей папке в файле с именем ex_2ndOrder_filter.prj.
Задать числовое преобразование в Convert to single precision.

Нажмите кнопку Далее (Next), чтобы перейти к шагу Определить типы ввода (Define Input Types).
Экраны приложений ex_2ndOrder_filter.m для нарушений кода и проблем готовности к созданию кода. Приложение не находит проблем в ex_2ndOrder_filter.m.
На странице Определить типы ввода (Define Input Types), чтобы добавить ex_2ndOrder_filter_test в качестве тестового файла перейдите к ex_2ndOrder_filter_test. Щелкните Открыть (Open).
Щелкните Автоопределить типы ввода (Autodefine Input Types).
Тестовый файл запускается и отображает выходные данные фильтра для каждого из входных сигналов. Приложение определяет, что тип ввода x является double(1x256).
Нажмите кнопку Далее, чтобы перейти к шагу Проверка ошибок времени выполнения.
Для обнаружения и устранения проблем преобразования с одинарной точностью выполните шаг Проверка на наличие проблем времени выполнения.
На странице Проверка ошибок времени выполнения приложение заполняет поле тестового файла ex_2ndOrder_filter_test, тестовый файл, который использовался для определения типов ввода.
Щелкните Проверить наличие проблем.
Приложение генерирует функцию MEX с одной точностью из ex_2ndOrder_filter. Он запускает тестовый файл ex_2ndOrder_filter_test замена вызовов ex_2ndOrder_filter с вызовами сгенерированной функции MEX. Если приложение находит проблемы, оно выдает предупреждения и сообщения об ошибках. Щелкните сообщение, чтобы выделить проблемный код в окне, в котором можно изменить код. В этом примере приложение не обнаруживает проблем.
Нажмите кнопку Далее, чтобы перейти на страницу Создание кода.
В диалоговом окне «Создание» задайте для параметра «Тип построения» значение Static Library.
Установите для языка значение C.
Для других параметров используйте значения по умолчанию.
Чтобы создать код, нажмите кнопку «Создать».
MATLAB Coder строит проект и создает статическую библиотеку C и вспомогательные файлы во вложенной папке по умолчанию, codegen/lib/ex_2ndOrder_filter.
Приложение отображает созданный код для ex_2ndOrder_filter.c.
Переменные двойной точности имеют тип float в коде C.
Индекс i - целое число.
При создании кода с одинарной точностью приложение позволяет выделить потенциальные проблемы типа данных в отчете о создании кода. Если приложению не удается удалить операцию двойной точности, отчет выделяет выражение MATLAB, которое приводит к операции.
Чтобы открыть отчет о создании кода, щелкните ссылку Просмотр отчета.
Перейдите на вкладку Анализ кода. Разверните Возможные проблемы с типами данных. Отсутствие операций двойной точности указывает на то, что операции двойной точности не остаются.