coder.CellType class
Пакет: coder
Суперклассы: coder.ArrayType
Представление набора массивов ячеек MATLAB
Описание
Задает набор массивов ячеек, которые принимает сгенерированный код. Используйте только с codegen
-args
опция. Не передайте как вход в сгенерированную MEX-функцию.
Конструкция
t = coder.typeof(cells
)
создает coder.CellType
объект для массива ячеек, который имеет те же камеры и типы камер, что и cells
. The камер in cells
type объектов или значения примера.
t = coder.typeof(cells
,sz
,variable_dims
)
создает coder.CellType
объект, который имеет верхние границы, заданные sz
и переменные размерности, заданные variable_dims
. Если sz
задает inf
для размерности, размер размерности неограниченен, а размерность переменный. Когда sz
является []
верхние границы не изменяются. Если вы не задаете variable_dims
входной параметр, за исключением неограниченных размерностей, размерности типа фиксированы. Скалярное variable_dims
применяется к ограниченным размерностям, которые не 1
или 0
.
Когда cells
задает массив ячеек, элементы которого имеют различные классы, вы не можете использовать coder.typeof
для создания coder.CellType
объект для массива ячеек переменного размера.
t = coder.newtype('cell',cells
)
создает coder.CellType
объект для массива ячеек, тип камер и камер которого задан как cells
. The камер in cells
должны быть объектами.
t = coder.newtype('cell',cells
,sz
,variable_dims
)
создает coder.CellType
который имеет верхние границы, заданные sz
и переменные размерности, заданные variable_dims
. Если sz
задает inf
для размерности, размер размерности неограниченен, а размерность переменный. Когда sz
является []
верхние границы не изменяются. Если вы не задаете variable_dims
входной параметр, за исключением неограниченных размерностей, размерности типа фиксированы. Скалярное variable_dims
применяется к ограниченным размерностям, которые не 1
или 0
.
Когда cells
задает массив ячеек, элементы которого имеют различные классы, вы не можете использовать coder.newtype
для создания coder.CellType
объект для массива ячеек переменного размера.
Входные параметры
расширить все
cells
- Спецификация типов камер
массив ячеек
Массив ячеек, который задает камеры и камер для выхода coder.CellType
объект. Для coder.typeof
, cells
может содержать объекты типа или значения примера. Для coder.newtype
, cells
должен содержать объекты типа.
sz
- Размер массива ячеек
вектор-строка целочисленных значений
Задает верхнюю границу для каждой размерности объекта типа массива ячеек. Для coder.newtype
, sz
невозможно изменить количество камер для гетерогенного массива ячеек.
Для coder.newtype
, по умолчанию является [1 1]
.
variable_dims
- Размерности, которые являются переменным размером
вектор-строка логических значений
Определяет, является ли каждая размерность переменным (true) или фиксированным (false).
Для coder.newtype
, по умолчанию является true
для размерностей, для которых sz
задает верхнюю границу inf
и false
для всех других размерностей.
Когда cells
задает массив ячеек, элементы которого имеют различные классы, вы не можете создать coder.CellType
объект для массива ячеек переменного размера.
Свойства
расширить все
Alignment
- Выравнивание памяти во время выполнения
-1
| степени 2
что меньше или равно 128
Время выполнения памяти выравнивание структур этого типа в байтах. Если у вас есть Embedded Coder® лицензия и использование библиотек замещения кода (CRL), CRL обеспечивают возможность выравнивания объектов данных, переданных в функцию замещения, по заданному контуру. Можно использовать преимущества реализации функции для конкретного целевого объекта, которые требуют выравнивания данных. По умолчанию структура не выравнивается по определенному контуру, поэтому она не совпадает с функциями CRL, которые требуют выравнивания.
Cells
- Типы камер
массив ячеек
Массив ячеек, который задает coder.Type
каждой камеры.
ClassName
- Имя класса
вектор символов или строковый скаляр
Класс значений в этом наборе.
Extern
- Внешнее определение
логический скаляр
Определяет, задан ли тип массива ячеек извне.
Если тип массива ячеек задан извне, то имя файла заголовка, который содержит внешнее определение типа, например 'mytype.h'
. Если вы используете codegen
чтобы задать путь к файлу, используйте команду -I
опция. Если вы используете MATLAB® Coder™ приложения, чтобы задать путь к файлу, используйте настройку Additional include directories на вкладке Custom Code в диалоговом окне настроек проекта.
По умолчанию сгенерированный код содержит #include
операторы для пользовательских заголовочных файлов после стандартных заголовочных файлов. Если стандартный файл заголовка ссылается на пользовательский тип структуры, то компиляция прекращает работать. Если вы задаете HeaderFile
опция, генератор кода включает пользовательский файл заголовка, где это необходимо.
SizeVector
- Размер массива ячеек
вектор-строка целочисленных значений
Верхние границы размерностей массива ячеек.
TypeName
- Имя сгенерированного типа структуры
вектор символов
Имя, используемое в сгенерированном коде для типа структуры, представляющего этот тип массива ячеек. TypeName
применяется только к гетерогенным типам массивов ячеек.
VariableDims
- Размерности, которые являются переменным размером
вектор-строка логических значений
Вектор, который определяет, является ли каждая размерность массива фиксированным или переменным. Если элемент вектора true
соответствующая размерность переменного размера.
Копировать семантику
Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».
Примеры
свернуть все
Создайте тип для массива ячеек, элементы которого имеют одинаковый класс
Создайте тип для массива ячеек, первый элемент которого имеет класс char и второй элемент которого имеет класс double.
t =
coder.CellType
1x3 homogeneous cell
base: 1x1 double
Тип однороден.
Создайте неоднородный тип для массива ячеек, элементы которого имеют одинаковый класс
Чтобы создать неоднородный тип, когда элементы примера типа массива ячеек имеют одинаковый класс, используйте makeHeterogeneous
способ.
t =
coder.CellType
1×3 locked heterogeneous cell
f1: 1×1 double
f2: 1×1 double
f3: 1×1 double
Тип массива ячеек неоднороден. Он представлен как структура в сгенерированном коде.
Создайте тип массива ячеек для массива ячеек, элементы которого имеют различные классы
Задайте переменные, которые являются примерами значений камер.
Передайте примеры значений камер в coder.typeof
.
t =
coder.CellType
1x2 heterogeneous cell
f0: 1x1 char
f1: 1x1 double
Создайте тип для однородного массива ячеек переменного размера из примера массива ячеек, элементы которого имеют различные классы
Создайте тип для массива ячеек, который содержит два векторов символов с различными размерами.
t =
coder.CellType
1x2 heterogeneous cell
f0: 1x2 char
f1: 1x3 char
Тип массива ячеек неоднороден.
Создайте тип с использованием того же входа массива ячеек. На этот раз укажите, что тип массива ячеек имеет размерности переменного размера.
t =
coder.CellType
1×:10 locked homogeneous cell
base: 1×:3 char
Тип массива ячеек однороден. coder.typeof
определил, что базовый тип 1x:3 char
может представлять 'aa'
, и 'bbb'
.
Создайте новый тип массива ячеек из массива ячеек типов
Создайте тип для скаляра int8
.
Создайте тип для: 1x: 2 double вектора-строки.
Создайте тип массива ячеек, камеры которого имеют типы, заданные ta
и ta
.
t =
coder.CellType
1x2 heterogeneous cell
f0: 1x1 int8
f1: :1x:2 double
Создайте coder.CellType
Который использует внешне заданный тип
Создайте тип камеры для гетерогенного массива ячеек.
coder.CellType
1x2 heterogeneous cell
f0: 1x1 double
f1: 1x1 single
Использовать coder.cstructname
для определения имени типа и того, что тип задан во внешнем файле.
t =
coder.CellType
1×2 extern locked heterogeneous cell mytype(myheader.h) [-1]
f1: 1×1 double
f2: 1×1 single
Совет
В отображении coder.CellType
объект, условия locked heterogeneous
или locked homogeneous
указать, что классификация как однородная или неоднородная является постоянной. Вы не можете позже изменить классификацию при помощи makeHomogeneous
или makeHeterogeneous
методы.
coder.typeof
определяет, является ли тип массива ячеек однородным или неоднородным. Если элементы массива ячеек имеют одинаковый класс и размер, coder.typeof
возвращает однородный тип массива ячеек. Если элементы имеют различные классы, coder.typeof
возвращает гетерогенный тип массива ячеек. Для некоторых массивов ячеек классификация как однородная или неоднородная неоднозначна. Например, тип для {1 [2 3]} может быть гетерогенным типом 1x2. Первый элемент имеет значение double, а второй элемент имеет значение 1x2 double. Тип может также быть однородным типом 1x3, у которого элементы имеют класс double и размер 1x: 2. Для этих неоднозначных случаев ,coder.typeof
использует эвристику, чтобы классифицировать тип как однородный или неоднородный. Если вам нужна другая классификация, используйте makeHomogeneous
или makeHeterogeneous
методы. makeHomogeneous
метод создает однородную копию типа. makeHeterogeneous
метод создает гетерогенную копию типа.
makeHomogeneous
и makeHeterogeneous
методы постоянно присваивают классификацию как однородную и неоднородную, соответственно. Вы не можете позже использовать один из этих методов, чтобы создать копию, которая имеет другую классификацию.
Введенный в R2015b