coder.CellType class

Пакет: кодер
Суперклассы: 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® и пользуетесь Заменяющими Библиотеками Кода (CRLs), CRLs обеспечивают способность выровняться, объекты данных передали в заменяющую функцию заданному контуру. Можно использовать в своих интересах целевые реализации функции, которые требуют, чтобы данные были выровнены. По умолчанию структура не выравнивается на определенном контуре, таким образом, она не является соответствующей функциями CRL, которые требуют выравнивания.

Массив ячеек, который задает coder.Type из каждой ячейки.

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

Задает, задан ли тип массива ячеек внешне.

Если тип массива ячеек внешне задан, имя заголовочного файла, который содержит внешнее определение типа, например, 'mytype.h'. Если вы используете codegen команда, чтобы задать путь к файлу, используйте -I опция. Если вы используете приложение MATLAB® Coder™, чтобы задать путь к файлу, используйте установку Additional include directories во вкладке Custom Code в диалоговом окне настроек проекта.

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

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

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

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

Методы

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

Примеры

свернуть все

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

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 неоднородный тип. Первый элемент является двойным, и второй элемент 1x2 дважды. Тип может также быть 1x3 гомогенный тип, в котором элементы имеют класс дважды и размер 1x:2. Для этих неоднозначных случаев, coder.typeof эвристика использования, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте makeHomogeneous или makeHeterogeneous методы. makeHomogeneous метод делает гомогенную копию типа. makeHeterogeneous метод делает неоднородную копию типа.

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

Введенный в R2015b