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