На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра введите выражение MATLAB®. Переменная имеет класс, размер и сложность значения выражения.
Также можно выбрать переменную из списка переменных рабочей области, который отображается.
Этот пример показывает, как задать вектор 1-by-4
16-битных целых чисел без знака.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра, введите:
zeros(1,4,'uint16')
Входным типом является uint16(1x4)
.
Опционально, после того, как вы задаете входной тип, можно указать, что вход является переменным размером. Например, выберите второе измерение.
Чтобы указать, что второе измерение является переменным размером с верхней границей 4
, выберите :4
. Также, чтобы указать, что второе измерение неограниченно, выберите :Inf
.
Также можно указать, что вход является переменным размером при помощи функции coder.newtype
. Введите выражение MATLAB:
coder.newtype('uint16',[1 4],[0 1])
Чтобы указать, что вход является скаляром с двойной точностью, введите 0
.
Этот пример показывает, как задать скалярный тип строки путем обеспечения строки в качестве примера.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра, введите:
"mystring"
Входной параметр является массивом строк 1 на 1 (представьте скаляр в виде строки), который содержит 1 8 вектор символов.
Чтобы сделать размер строковой переменной, кликните по второму измерению.
Чтобы указать, что второе измерение неограниченно, выберите :Inf
.
Чтобы указать, что второе измерение имеет верхнюю границу, введите верхнюю границу, например, 8
. Затем выберите :8
.
Этот пример показывает, как задать структуру с двумя полями, a
и b
. Входной тип a
является скаляром дважды. Входной тип b
является скалярным char.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра, введите:
struct('a', 1, 'b', 'x')
Типом входного параметра является struct(1x1)
. Типом поля a
является double(1x1)
. Типом поля b
является char(1x1)
Для массива структур, чтобы задать размер каждой размерности, кликают по размерности и задают размер. Например, войдите 4 для первой размерности.
Чтобы указать, что второе измерение является переменным размером с верхней границей 4
, выберите :4
. Также, чтобы указать, что второе измерение неограниченно, выбирают :Inf
.
Также задайте размер массива структур в вызове функции struct
. Например, struct('a', { 1 2}, 'b', {'x', 'y'})
задает 1x2 массив структур с полями a
и b
. Типом поля a
является double(1x1)
. Типом поля b
является char(1x1)
.
Чтобы изменить определение типа, смотрите, Задают Входной Параметр Структуры.
Этот пример показывает, как задать вход массива ячеек на примере. Когда вы задаете массив ячеек на примере, приложение определяет, является ли массив ячеек гомогенным или неоднородным. Смотрите Генерацию кода для Массивов ячеек. Если вы хотите управлять, является ли массив ячеек гомогенным или неоднородным, задайте массив ячеек типом. Смотрите Задают Входной Параметр Массива ячеек.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра введите массив ячеек в качестве примера.
Если все элементы массива ячеек имеют те же свойства, массив ячеек является гомогенным. Например, введите:
{1 2 3}
double(1x1)
.
Двоеточие в изогнутом braces{:}
указывает, что все элементы имеют те же свойства.
Если элементы массива ячеек имеют различные классы, массив ячеек неоднороден. Например, введите:
{'a', 1}
char(1x1)
. Типом второго элемента является double(1x1)
.
Для некоторых массивов ячеек в качестве примера. классификация как гомогенная или неоднородная неоднозначна. Для этих массивов ячеек приложение использует эвристику, чтобы определить, является ли массив ячеек гомогенным или неоднородным. Например, для массива ячеек в качестве примера, введите:
{1 [2 3]}
double(1x1)
. Типом второго элемента является double(1x2)
.
Однако массив ячеек в качестве примера, {1 [2 3]}
, может также быть гомогенным массивом ячеек, элементы которого 1x:2 дважды. Если вы хотите, чтобы этот массив ячеек был гомогенным, выполнить одно из следующих действий:
Задайте массив ячеек, введенный типом. Укажите, что вход является гомогенным массивом ячеек. Укажите, что элементы 1x:2 дважды. Смотрите Задают Входной Параметр Массива ячеек.
Щелкните правой кнопкой по переменной. Выберите Homogeneous. Укажите, что элементы 1x:2 дважды.
Если вы используете coder.typeof
, чтобы указать, что массив ячеек в качестве примера является переменным размером, приложение делает массив ячеек гомогенным. Например, для входа в качестве примера, введите:
coder.typeof({1 [2 3]}, [1 3], [0 1])
Чтобы изменить определение типа, смотрите, Задают Входной Параметр Массива ячеек.
Этот пример показывает, как указать, что вход использует перечислимый тип MyColors
.
Предположим, что MyColors.m
находится на пути MATLAB.
classdef MyColors < int32 enumeration green(1), red(2), end end
Чтобы указать, что вход имеет перечислимый тип MyColors
:
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра введите выражение 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
Задайте функцию, которая берет объект класса значения как вход. Например:
function z = getarea(r) %#codegen z = calcarea(r); end
В MATLAB задайте объект rect_obj
.
rect_obj = myRectangle(3,4)
В приложении, на странице Select Source Files, вводят getarea
для функции точки входа.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от r
.
Выберите Define by Example.
В поле справа от r
введите rect_obj
или выберите его из списка переменных рабочей области. Приложение решает, что r
является классом со свойствами length
и width
.
Также можно обеспечить объект coder.ClassType
для того класса. Чтобы задать объект coder.ClassType
, используйте coder.typeof
. Например:
В MATLAB задайте объект coder.ClassType
, который имеет те же свойства как rect_obj
.
t = coder.typeof(rect_obj)
В приложении обеспечьте t
как пример.
Чтобы изменить размер или тип свойства, кликните по полю справа от свойства.
Когда вы генерируете код, свойства, которые вы задаете в приложении, должны быть сопоставимы со свойствами в файле определения класса. Если файл определения класса имеет свойства, которые не использует ваш код, ваше определение типа в приложении не должно включать те свойства. Генератор кода удаляет свойства, которые не использует ваш код.
Смотрите задают объекты как входные параметры в приложении MATLAB Coder.
Чтобы задать входные параметры фиксированной точки, программное обеспечение Fixed-Point Designer™ должно быть установлено.
Этот пример показывает, как задать фиксированную точку со знаком с размером слова восьми битов и дробной длиной трех битов.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, который вы хотите задать.
Выберите Define by Example.
В поле справа от параметра, введите:
fi(10, 1, 8, 3)
Приложение устанавливает тип входа u
к fi(1x1)
. По умолчанию, если вы не задаете локальный fimath
, приложение использует fimath
по умолчанию. См. fimath для Совместного использования Арифметических Правил (Fixed-Point Designer).
Опционально, измените свойства фиксированной точки или размер входа. Смотрите Задают Входной Параметр Фиксированной точки и Задают или Входной Тип Параметра Редактирования при помощи Приложения.
При генерации кода для нескольких функций точки входа можно использовать выходной тип от одной функции точки входа как входной тип к другой функции точки входа. Для получения дополнительной информации смотрите Передачу Функция Точки входа Вывод как Вход.
На странице Define Input Types нажмите Let me enter input or global types directly.
Кликните по полю справа от входного параметра, что вы хотите задать и выбрать Use Output.
Выберите имя функции точки входа и соответствующего выходного параметра, от которого можно задать входной тип.