В этом примере показано, как преобразовать алгоритм MATLAB ®, содержащий структуры, в фиксированную точку с помощью приложения Fixed-Point Converter.
В локальной папке, доступной для записи, создайте функции struct_fcn.m
function [out, y] = struct_fcn(in) % create a nested struct z = struct('prop1', struct('subprop1', 0, 'subprop2', [3 4 45])); % copy over the struct y = z; y.prop1.subprop1 = y.prop1.subprop1 + in; out = y.prop1.subprop1; end
В той же папке создайте тестовый файл, struct_fcn_tb.m, что вызывает функцию.
for ii = 1:10 struct_fcn(ii); end
В коллекции приложений откройте приложение Fixed-Point Converter.
На странице «Выбор исходных файлов» перейдите к struct_fcn.m и нажмите кнопку «Открыть».
Нажмите кнопку Далее. На странице Define Input Types введите тестовый файл, выполняющий команду struct_fcn функция. Выполните обзор, чтобы выбрать struct_fcn_tb.m файл. Щелкните Автоопределить типы ввода (Autodefine Input Types).
Нажмите кнопку Далее. Приложение создает инструментальную функцию MEX для исходной функции MATLAB. На странице Преобразовать в фиксированную точку (Convert to Fixed-Point) щелкните Смоделировать (Simulate), чтобы смоделировать функцию, собрать информацию о диапазоне и предложить типы данных.
Если имена, число и типы полей двух или более структур совпадают, приложение Fixed-Point Converter предлагает унифицированный тип. В этом примере диапазон z.prop1.subprop1 является [0,0], в то время как диапазон y.prop1.subprop1 является [0,10]. Приложение предлагает тип данных numerictype(0,4,0) для обоих z.prop1.subprop1 и y.prop1.subprop1 на основе объединения диапазонов двух полей.

Щелкните Преобразовать (Convert).
Преобразователь фиксированной точки преобразует функцию, содержащую структуры, в фиксированную точку и генерирует struct_fcn_fixpt.m файл.
