makeHomogeneous

Класс: coder. CellType
Пакет: coder

Создайте однородную копию типа массива ячеек

Синтаксис

newt = makeHomogeneous(t)
t = makeHomogeneous(t)

Описание

newt = makeHomogeneous(t) создает coder.CellType объект для однородного массива ячеек newt от coder.CellType t объекта.

Создание newt, makeHomogeneous метод должен определять размер и класс, которые представляют все элементы t:

  • Если элементы t имеют одинаковый класс, но разные размеры, элементы newt - размер переменной с верхними границами, которые вмещают элементы t.

  • Если элементы t иметь различные классы, для примера, char и double, makeHomogeneous метод не может создать coder.CellType объект для однородного массива ячеек.

Если вы используете coder.cstructname чтобы задать имя для типа структуры, который представляет t в сгенерированном коде вы не можете создать однородное coder.CellType объект из t.

Классификация как однородная является постоянной. Вы не можете позже создать гетерогенное coder.CellType объект из newt.

t = makeHomogeneous(t) создает однородную coder.CellType объект из t и заменяет t с новым объектом.

Примеры

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

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

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

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

Тип массива ячеек неоднороден.

Замените t с типом массива ячеек для однородного массива ячеек.

t = makeHomogeneous(t)
t = 

coder.CellType
   1×2 locked homogeneous cell 
      base: 1×:2 double

Новый тип массива ячеек однороден.

Совет

  • В отображении 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 методы.

Введенный в R2015b