класс coder.CellType
Пакет: кодер
Суперклассы: 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 - Спецификация типов ячеек
массив ячеек
Массив ячеек, указывающий ячейки и типы ячеек для вывода 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™, используйте параметр «Дополнительные каталоги включения» на вкладке «Пользовательский код» диалогового окна параметров проекта.
По умолчанию созданный код содержит #include инструкции для пользовательских файлов заголовка после стандартных файлов заголовка. Если стандартный файл заголовка ссылается на пользовательский тип структуры, то компиляция завершается неуспешно. При указании HeaderFile , генератор кода включает пользовательский файл заголовка, где он требуется.
SizeVector - Размер массива ячеек
вектор строки целых значений
Верхние границы размеров массива ячеек.
TypeName - Наименование создаваемого типа структуры
символьный вектор
Имя, используемое в созданном коде для типа структуры, представляющего этот тип массива ячеек. TypeName применяется только к типам гетерогенных клеточных массивов.
VariableDims - Размеры переменного размера
вектор строки логических значений
Вектор, указывающий, является ли каждый размер массива фиксированным или переменным. Если векторный элемент trueсоответствующий размер является переменным размером.
Копирование семантики
Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.
Примеры
свернуть все
Создание типа для массива ячеек, элементы которого имеют одинаковый класс
Создайте тип для массива ячеек, первый элемент которого имеет символ класса, а второй элемент - двойной.
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. Первый элемент является двойным, а второй элемент - двойным. Тип также может быть однородным типом 1x3, в котором элементы имеют класс double и размер 1x: 2. Для этих неоднозначных случаев ,coder.typeof использует эвристику для классификации типа как однородного или гетерогенного. Если требуется другая классификация, используйте makeHomogeneous или makeHeterogeneous методы. makeHomogeneous способ делает однородную копию типа. makeHeterogeneous делает гетерогенную копию типа.
makeHomogeneous и makeHeterogeneous методы постоянно присваивают классификацию как однородную и гетерогенную соответственно. В дальнейшем нельзя будет использовать один из этих методов для создания копии с другой классификацией.
Представлен в R2015b