coder.CellType class
Пакет: кодер
Суперклассы: coder.ArrayType
Представляйте набор массивов ячеек MATLAB
Описание
Задает набор массивов ячеек, которые принимает сгенерированный код. Используйте только с codegen
-args
опция. Не передавайте как вход сгенерированной MEX-функции.
Конструкция
t = coder.typeof(cells
)
создает coder.CellType
объект для массива ячеек, который имеет те же ячейки и типы ячейки как cells
. Ячейки в cells
значения в качестве примера или текстовые объекты.
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
. Ячейки в 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
— Спецификация типов ячейки
cellArray
Массив ячеек, который задает ячейки и типы ячейки для выхода 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® и пользуетесь Заменяющими Библиотеками Кода (CRLs), CRLs обеспечивают способность выровняться, объекты данных передали в заменяющую функцию заданному контуру. Можно использовать в своих интересах целевые реализации функции, которые требуют, чтобы данные были выровнены. По умолчанию структура не выравнивается на определенном контуре, таким образом, она не является соответствующей функциями CRL, которые требуют выравнивания.
Cells
— Типы ячеек
cellArray
Массив ячеек, который задает coder.Type
из каждой ячейки.
ClassName
— Имя класса
вектор символов или строковый скаляр
Класс значений в этом наборе.
Extern
— Внешнее определение
логический скаляр
Задает, задан ли тип массива ячеек внешне.
Если тип массива ячеек внешне задан, имя заголовочного файла, который содержит внешнее определение типа, например, 'mytype.h'
. Если вы используете codegen
команда, чтобы задать путь к файлу, используйте -I
опция. Если вы используете приложение MATLAB® Coder™, чтобы задать путь к файлу, используйте установку Additional include directories во вкладке Custom Code в диалоговом окне настроек проекта.
По умолчанию сгенерированный код содержит #include
операторы для пользовательских заголовочных файлов после стандартных заголовочных файлов. Если стандартный заголовочный файл относится к пользовательскому типу структуры, то компиляция перестала работать. Если вы задаете HeaderFile
опция, генератор кода включает пользовательский заголовочный файл, где это требуется.
SizeVector
— Размер массива ячеек
вектор-строка из целочисленных значений
Верхние границы размерностей массива ячеек.
TypeName
— Имя сгенерированного типа структуры
символьный вектор
Имя, чтобы использовать в сгенерированном коде в типе структуры, который представляет этот тип массива ячеек. TypeName
применяется только к неоднородным типам массивов ячеек.
VariableDims
— Размерности, которые являются переменным размером
вектор-строка из логических значений
Вектор, который задает, фиксируется ли каждая размерность массива или переменный размер. Если векторным элементом является true
, соответствующая размерность является переменным размером.
Копировать семантику
Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).
Примеры
свернуть все
Создайте тип для массива ячеек, элементы которого имеют тот же класс
Создайте тип для массива ячеек, первый элемент которого имеет char класса и чей второй элемент имеет класс дважды.
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 двойной вектор-строка.
Создайте тип массива ячеек, ячейкам которого задал типы 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 неоднородный тип. Первый элемент является двойным, и второй элемент 1x2 дважды. Тип может также быть 1x3 гомогенный тип, в котором элементы имеют класс дважды и размер 1x:2. Для этих неоднозначных случаев, coder.typeof
эвристика использования, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте makeHomogeneous
или makeHeterogeneous
методы. makeHomogeneous
метод делает гомогенную копию типа. makeHeterogeneous
метод делает неоднородную копию типа.
makeHomogeneous
и makeHeterogeneous
методы постоянно присваивают классификацию как гомогенную и неоднородную, соответственно. Вы не можете дальнейшее использование один из этих методов, чтобы создать копию, которая имеет различную классификацию.
Введенный в R2015b