coder.CellType class

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

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

Описание

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

Конструкция

Примечание

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

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

Входные параметры

расширить все

Массив ячеек, который задает камеры и камер для выхода 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™ приложения, чтобы задать путь к файлу, используйте настройку Additional include directories на вкладке Custom Code в диалоговом окне настроек проекта.

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

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

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

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

Методы

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

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

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

Примеры

свернуть все

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

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 double вектора-строки.

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

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

Введенный в R2015b
Для просмотра документации необходимо авторизоваться на сайте