Определите входной параметр по примеру при помощи приложения

Задайте параметр Входа по примеру

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите MATLAB® выражение. Переменная имеет класс, размер и сложность значения выражения.

    Кроме того, можно выбрать переменную из списка отображаемых переменных рабочей области.

Задайте входные параметры по примеру

В этом примере показано, как задать 1-by-4 вектор беззнаковых 16-битных целых чисел.

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите:

    zeros(1,4,'uint16')

    Тип входа uint16(1x4).

  5. Опционально, после того, как вы задаете тип входа, можно задать, что вход является размером переменной. Для примера выберите второе измерение.

  6. Чтобы указать, что второе измерение переменного размера с верхней границей 4, выберите :4. Кроме того, чтобы указать, что второе измерение неограниченен, выберите :Inf.

Также можно задать, что вход переменного размера при помощи coder.newtype функция. Введите выражение MATLAB:

coder.newtype('uint16',[1 4],[0 1])

Примечание

Чтобы указать, что вход является скаляром двойной точности, введите 0.

Задайте Строковый скаляр Входа Параметр по Примеру

В этом примере показано, как задать строковый скалярный тип с помощью примера строки.

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите:

    "mystring"

    Входным параметром являются строковые массивы 1 на 1 (строковый скаляр), который содержит вектор 1 на 8 символов.

  5. Чтобы изменить размер строки, щелкните второе измерение.

    • Чтобы указать, что второе измерение неограниченен, выберите :Inf.

    • Чтобы указать, что второе измерение имеет верхнюю границу, введите верхнюю границу, например 8. Затем выберите :8.

Задайте входной параметр типа структуры по примеру

В этом примере показано, как задать структуру с двумя полями, a и b. Тип входа a - скаляр двойной точности. Тип входа b - скалярный char.

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите:

    struct('a', 1, 'b', 'x')
    

    Тип входного параметра struct(1x1). Тип поля a является double(1x1). Тип поля b является char(1x1)

  5. Для массива структур, чтобы задать размер каждой размерности, щелкните размерность и укажите размер. Для примера введите 4 для первой размерности.

  6. Чтобы указать, что второе измерение переменного размера с верхней границей 4, выберите :4. Кроме того, чтобы указать, что второе измерение неограниченный, выберите :Inf.

Кроме того, задайте размер массива структур в struct вызов функции. Для примера, struct('a', { 1 2}, 'b', {'x', 'y'}) задает массив структур 1x2 с полями a и b. Тип поля a является double(1x1). Тип поля b является char(1x1).

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

Задайте входной параметр типа массива ячеек по примеру

В этом примере показано, как задать вход массива ячеек по примеру. Когда вы задаете массив ячеек по примеру, приложение определяет, является ли массив ячеек однородным или неоднородным. Смотрите Генерацию кода для массивов ячеек. Если вы хотите контролировать, является ли массив ячеек однородным или неоднородным, задайте массив ячеек по типу. См. «Задание входного параметра массива ячеек».

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите пример массива ячеек.

    • Если все элементы массива ячеек имеют одинаковые свойства, массив ячеек однороден. Для примера введите:

      {1 2 3}
      
      Входной вход является массивом ячеек 1x3. Тип каждого элемента double(1x1).

      Двоеточие внутри фигурных скобок {:} указывает, что все элементы имеют одинаковые свойства.

    • Если элементы массива ячеек имеют различные классы, массив ячеек неоднороден. Для примера введите:

      {'a', 1}
      Входной вход является массивом ячеек 1x2. Для гетерогенного массива ячеек приложение приводит список каждого элемента. Тип первого элемента char(1x1). Тип второго элемента double(1x1).

    • Для некоторых примеров массивов ячеек. классификация как однородная или неоднородная неоднозначна. Для этих массивов ячеек приложение использует эвристику, чтобы определить, является ли массив ячеек однородным или неоднородным. Например, для примера массива ячеек введите:

      {1 [2 3]}
      Элементы имеют одинаковый класс, но разные размеры. Приложение определяет, что вход является гетерогенным массивом ячеек 1x2. Тип первого элемента double(1x1). Тип второго элемента double(1x2).

      Однако пример массива ячеек, {1 [2 3]}, может также быть однородным массивом ячеек, элементы которого являются 1x: 2 double. Если вы хотите, чтобы этот массив ячеек был однородным, выполните одно из следующих действий:

      • Укажите входной параметр массива ячеек по типам. Задайте, что вход является однородным массивом ячеек. Задайте, что элементы 1x: 2 double. См. «Задание входного параметра массива ячеек».

      • Щелкните правой кнопкой мыши переменную. Выберите Homogeneous. Задайте, что элементы 1x: 2 double.

      Если вы используете coder.typeof чтобы указать, что пример массива ячеек имеет переменный размер, приложение делает массив ячеек однородным. Например, для примера ввода введите:

      coder.typeof({1 [2 3]}, [1 3], [0 1])
      Приложение определяет, что вход является однородным массивом ячеек 1x: 3, элементы которого являются 1x: 2 double.

Для изменения определения типа см. Раздел «Задание входного параметра массива ячеек».

Задайте входной параметр перечисляемого типа по примеру

В этом примере показано, как задать, что вход использует перечисленный тип MyColors.

Предположим, что MyColors.m находится в пути MATLAB.

classdef MyColors < int32
    enumeration
        green(1),
        red(2),
    end
end

Чтобы указать, что вход имеет перечисленный тип MyColors:

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите выражение MATLAB:

    MyColors.red

Задайте тип Входа объекта Параметра по примеру

В этом примере показано, как задать тип для объекта класса значения myRectangle.

classdef myRectangle
    properties
        length;
        width;
    end
    methods
        function obj = myRectangle(l,w)
            if nargin > 0
                obj.length = l;
                obj.width = w;
            end
        end
        function area = calcarea(obj)
            area = obj.length * obj.width;
        end
    end
end

  1. Задайте функцию, которая принимает объект класса значений как вход. Для примера:

    function z = getarea(r)
    %#codegen
    z = calcarea(r);
    end

  2. В MATLAB задайте объект rect_obj.

    rect_obj = myRectangle(3,4)

  3. В приложении на странице Select Source Files введите getarea для функции точки входа.

  4. На странице Define Input Types нажмите Let me enter input or global types directly.

  5. Щелкните поле справа от r.

  6. Выберите Define by Example.

  7. В поле справа от r, введите rect_obj или выберите его из списка переменных рабочей области. Приложение определяет, что r - класс со свойствами length и width.

Также можно предоставить coder.ClassType объект для этого класса. Как задать coder.ClassType объект, использование coder.typeof. Для примера:

  1. В MATLAB задайте coder.ClassType объект, который имеет те же свойства, что и rect_obj.

    t = coder.typeof(rect_obj)

  2. В приложении предоставьте t как пример.

Чтобы изменить размер или тип свойства, щелкните поле справа от свойства.

Когда вы генерируете код, свойства, которые вы задаете в приложении, должны соответствовать свойствам в файле определения класса. Если файл определения класса имеет свойства, которые не использует ваш код, ваше определение типа в приложении не должно включать эти свойства. Генератор кода удаляет свойства, которые не использует ваш код.

Смотрите «Задать объекты как входные параметры» в приложении MATLAB Coder.

Задайте входной параметр с фиксированной точкой по примеру

Чтобы задать входы с фиксированной точкой, необходимо установить программное обеспечение Fixed-Point Designer™.

В этом примере показано, как задать тип со знаком с фиксированной точкой с размером слова восемь битов и длиной дроби три бита.

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать.

  3. Выберите Define by Example.

  4. В поле справа от параметра введите:

    fi(10, 1, 8, 3) 

    Приложение устанавливает тип входа u на fi(1x1). По умолчанию, если вы не задаете локальное fimathприложение использует значение по умолчанию fimath. Смотрите fimath для Совместного использования правил Арифметики (Fixed-Point Designer).

    Вы можете изменить свойства с фиксированной точкой или размер входа. Смотрите Specify a Fixed-Point Входа Parameter и Задайте или Редактируйте Вход Parameter Type при помощи приложения.

Задайте вход из выходного типа функции точки входа

При генерации кода для нескольких функций точки входа можно использовать тип выхода из одной функции точки входа в качестве входного типа в другую функцию точки входа. Для получения дополнительной информации смотрите Передайте выход функции точки входа как вход.

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Щелкните поле справа от входного параметра, который вы хотите задать, и выберите Use Output.

  3. Выберите имя функции точки входа и соответствующий выходной параметр, из которого можно задать входной тип.

Приложение MATLAB Coder™ не поддерживается в MATLAB Online™.