exponenta event banner

класс coder.CellType

Пакет: кодер
Суперклассы: coder.ArrayType

Представление набора массивов ячеек MATLAB

Описание

Указывает набор массивов ячеек, которые принимает созданный код. Использовать только с codegen -args вариант. Не передавайте в качестве входных данных сгенерированную функцию MEX.

Строительство

Примечание

Можно также создавать и редактировать coder.Type объектов в интерактивном режиме с помощью редактора типов кодеров. См. раздел Создание и редактирование типов ввода с помощью редактора типов кодеров.

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 объект для массива ячеек переменного размера.

Входные аргументы

развернуть все

Массив ячеек, указывающий ячейки и типы ячеек для вывода coder.CellType объект. Для coder.typeof, cells может содержать объекты типа или значения примера. Для coder.newtype, cells должен содержать объекты типа.

Указывает верхнюю границу для каждого размера объекта типа массива ячеек. Для coder.newtype, sz не удается изменить число ячеек для гетерогенного массива ячеек.

Для coder.newtype, значение по умолчанию - [1 1].

Указывает, является ли каждое измерение переменным размером (true) или фиксированным размером (false).

Для coder.newtype, значение по умолчанию - true для размеров, для которых sz задает верхнюю границу inf и false для всех остальных измерений.

Когда cells задает массив ячеек, элементы которого имеют разные классы, невозможно создать coder.CellType объект для массива ячеек переменного размера.

Свойства

развернуть все

Выравнивание памяти во время выполнения структур этого типа в байтах. При наличии лицензии Embedded Coder ® и использовании библиотек замены кода (CRL) CRL обеспечивают возможность выравнивания объектов данных, передаваемых в функцию замены, с заданной границей. Можно воспользоваться преимуществами реализации целевых функций, требующих выравнивания данных. По умолчанию структура не выравнивается по определенной границе, поэтому ей не соответствуют функции CRL, требующие выравнивания.

Массив ячеек, определяющий coder.Type каждой ячейки.

Класс значений в этом наборе.

Указывает, определен ли тип массива ячеек извне.

Если тип массива ячеек определен извне, имя файла заголовка, содержащего внешнее определение типа, например: 'mytype.h'. Если вы используете codegen для указания пути к файлу используйте команду -I вариант. Если для указания пути к файлу используется приложение MATLAB ® Coder™, используйте параметр «Дополнительные каталоги включения» на вкладке «Пользовательский код» диалогового окна параметров проекта.

По умолчанию созданный код содержит #include инструкции для пользовательских файлов заголовка после стандартных файлов заголовка. Если стандартный файл заголовка ссылается на пользовательский тип структуры, то компиляция завершается неуспешно. При указании HeaderFile , генератор кода включает пользовательский файл заголовка, где он требуется.

Верхние границы размеров массива ячеек.

Имя, используемое в созданном коде для типа структуры, представляющего этот тип массива ячеек. TypeName применяется только к типам гетерогенных клеточных массивов.

Вектор, указывающий, является ли каждый размер массива фиксированным или переменным. Если векторный элемент trueсоответствующий размер является переменным размером.

Методы

isHeterogeneousОпределите, представляет ли тип массива ячеек гетерогенный массив ячеек
isHomogeneousОпределение того, представляет ли тип массива ячеек однородный массив ячеек
makeHeterogeneousСоздание гетерогенной копии типа массива ячеек
makeHomogeneousСоздание однородной копии типа массива ячеек

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте тип для массива ячеек, первый элемент которого имеет символ класса, а второй элемент - двойной.

t = coder.typeof({1 2 3})
t = 

coder.CellType
   1x3 homogeneous cell 
      base: 1x1 double

Тип однородный.

Чтобы создать гетерогенный тип, когда элементы типа массива ячеек примера имеют один и тот же класс, используйте makeHeterogeneous способ.

t = makeHeterogeneous(coder.typeof({1 2 3}))
t = 

coder.CellType
   1×3 locked heterogeneous cell 
      f1: 1×1 double
      f2: 1×1 double
      f3: 1×1 double

Тип массива ячеек является гетерогенным. Он представлен в виде структуры в сгенерированном коде.

Определите переменные, которые являются примерами значений ячеек.

a = 'a';
b = 1;

Передача значений ячеек примера в coder.typeof.

t = coder.typeof({a, b})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 char
      f1: 1x1 double

Создайте тип для массива ячеек, содержащего два символьных вектора разных размеров.

t = coder.typeof({'aa', 'bbb'})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x2 char
      f1: 1x3 char

Тип массива ячеек является гетерогенным.

Создайте тип, используя тот же вход массива ячеек. На этот раз укажите, что тип массива ячеек имеет размеры переменного размера.

t = coder.typeof({'aa','bbb'},[1,10],[0,1])
t = 

coder.CellType
   1×:10 locked homogeneous cell 
      base: 1×:3 char

Тип массива ячеек является однородным. coder.typeof определил, что базовый тип 1x:3 char может представлять 'aa', и 'bbb'.

Создание типа для скаляра int8.

ta = coder.newtype('int8',[1 1]);

Создайте тип для вектора двойной строки: 1x: 2.

tb = coder.newtype('double',[1 2],[1 1]);

Создание типа массива ячеек, для которых заданы типы ta и ta.

t = coder.newtype('cell',{ta,tb})
t = 

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 int8
      f1: :1x:2 double

Создайте тип ячейки для гетерогенного массива ячеек.

ca = coder.typeof(double(0));
cb = coder.typeof(single(0));
t = coder.typeof({ca cb})
coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 double
      f1: 1x1 single

Использовать coder.cstructname для указания имени типа и определения типа во внешнем файле.

t = coder.cstructname(t,'mytype','extern','HeaderFile','myheader.h')
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