Создание coder.Type
объект, чтобы представлять тип входного параметра функции точки входа
Примечание
Можно также создавать и редактировать coder.Type
объекты в интерактивном режиме с помощью редактора типов кодеров. См. «Создание и редактирование входных типов при помощи редактора типов кодеров».
создает объект, который является производным от type_obj
= coder.typeof(v
)coder.Type
для представления типа v
для генерации кода. Использовать coder.typeof
для задания только типов входных параметров. Используйте его с codegen
функциональные -args
опция или в MATLAB® Coder™ проект, когда вы определяете тип входа путем предоставления примера кода. Не используйте его в коде MATLAB, из которого вы намерены сгенерировать код.
возвращает измененную копию type_obj
= coder.typeof(v
,sz
,variable_dims
)type_obj
= coder.typeof (v
) с верхним размером границы, заданным sz
и переменные размерности, заданные variable_dims
.
Для разреженных матриц, coder.typeof
отбрасывает верхние границы для размерностей переменного размера.
Для представления массивов GPU поддерживаются только ограниченные числовые и логические базовые типы. Скалярные графические процессоры массивы, структуры, массивы ячеек, классы, перечисляемые типы, символы, половинная точность и типы данных с фиксированной точкой не поддерживаются.
При использовании coder.typeof
для представления массивов GPU, свойство режима выделения памяти (malloc) объекта строения кода GPU должно быть установлено в 'discrete'
.
coder.typeof
фиксирует размер синглтонной размерности, если нет variable_dims
аргумент явным образом задает, что синглтонная размерность имеет переменный размер.
Например, следующий код определяет 1-by-: 10 double. Первая размерность (синглтонная размерность) имеет фиксированный размер. Второе измерение имеет переменный размер.
t = coder.typeof(5,[1 10],1)
t = coder.typeof(5,[1 10],[1 1])
Примечание
Для блока MATLAB Function синглтонные размерности входа или выхода сигналов не могут иметь переменный размер.
Если вы уже задаете тип переменного входа с помощью функции type, не используйте coder.typeof
если вы также не хотите задать размер. Для образца вместо coder.typeof(single(0))
, используйте синтаксис single(0)
.
Для типов массивов ячеек, coder.typeof
определяет, является ли тип массива ячеек однородным или неоднородным.
Если элементы массива ячеек имеют одинаковый класс и размер, coder.typeof
возвращает однородный тип массива ячеек.
Если элементы имеют различные классы, coder.typeof
возвращает гетерогенный тип массива ячеек.
Для некоторых массивов ячеек классификация как однородная или неоднородная неоднозначна. Для примера тип {1 [2 3]} может быть гетерогенным типом 1x2, где первый элемент является двойным, а второй - двойным. Тип может также быть однородным типом 1x3, у которого элементы имеют класс double и размер 1x: 2. Для этих неоднозначных случаев ,coder.typeof
использует эвристику, чтобы классифицировать тип как однородный или неоднородный. Если вам нужна другая классификация, используйте кодер. CellType makeHomogeneous
или makeHeterogeneous
методы для создания типа с нужной классификацией. makeHomogeneous
метод создает однородную копию типа. makeHeterogeneous
метод создает гетерогенную копию типа.
makeHomogeneous
и makeHeterogeneous
методы постоянно присваивают классификацию как неоднородную и однородную. Вы не можете позже использовать один из этих методов, чтобы создать копию, которая имеет другую классификацию.
Во время генерации кода с типами массивов GPU, если один вход в функцию точки входа имеет тип массива GPU, то выходные переменные все типы массивов GPU, при условии, что они поддерживаются для генерации кода GPU. Для примера. если функция точки входа возвращает struct
и потому что struct
не поддерживается, сгенерированный код возвращает выход центральный процессор. Однако, если возвращается поддерживаемый тип матрицы, сгенерированный код возвращает выход графический процессор.
codegen
| coder.ArrayType
| coder.CellType
| coder.ClassType
| coder.EnumType
| coder.FiType
| coder.newtype
| coder.PrimitiveType
| coder.resize
| coder.StructType
| coder.Type