Преобразуйте код, содержащий структуры к фиксированной точке

Этот пример показывает, как преобразовать алгоритм MATLAB®, содержащий структуры к фиксированной точке с помощью приложения Fixed-Point Converter.

  1. В локальной перезаписываемой папке создайте функции 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

  2. В той же папке создайте тестовый файл, struct_fcn_tb.m, который вызывает функцию.

    for ii = 1:10
        struct_fcn(ii);
    end

  3. Из галереи приложений откройте приложение Fixed-Point Converter.

  4. На странице Select Source Files просмотрите к файлу struct_fcn.m и нажмите Open.

  5. Нажмите Next. На странице Define Input Types введите тестовый файл, который осуществляет функцию struct_fcn. Просмотрите, чтобы выбрать файл struct_fcn_tb.m. Нажмите Autodefine Input Types.

  6. Нажмите 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 на основе объединения областей значений этих двух полей.

  7. Нажмите Convert.

    Fixed-Point Converter преобразовывает функцию, содержащую структуры к фиксированной точке, и генерирует файл struct_fcn_fixpt.m.