exponenta event banner

makeHomogeneous

Класс: кодер. CellType
Пакет: кодер

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

Синтаксис

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

Представлен в R2015b