В этом примере показано, как преобразовать алгоритм 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
Из галереи Apps откройте приложение Fixed-Point Converter.
На странице Select Source Files просмотрите к struct_fcn.m
файл, и нажимает Open.
Нажмите Next. На странице Define Input Types введите тестовый файл, который осуществляет struct_fcn
функция. Просмотрите, чтобы выбрать struct_fcn_tb.m
файл. Нажмите Autodefine Input Types.
Нажмите Next. Приложение генерирует оснащенную 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.
Fixed-Point Converter преобразует функцию, содержащую структуры к фиксированной точке, и генерирует struct_fcn_fixpt.m
файл.