makeHomogeneous

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

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

Синтаксис

тритон = 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 указывают, что классификация как гомогенная или неоднородная является постоянной. Вы не можете позже изменить классификацию при помощи методов makeHeterogeneous или makeHomogeneous.

  • coder.typeof определяет, является ли тип массива ячеек гомогенным или неоднородным. Если элементы массива ячеек имеют тот же класс и размер, coder.typeof возвращает гомогенный тип массива ячеек. Если элементы имеют различные классы, coder.typeof возвращает неоднородный тип массива ячеек. Для некоторых массивов ячеек классификация как гомогенная или неоднородная неоднозначна. Например, тип для {1 [2 3]} может быть 1x2 неоднородный тип. Первый элемент является двойным, и второй элемент 1x2 дважды. Тип может также быть 1x3 гомогенный тип, в котором элементы имеют класс дважды и размер 1x:2. Для этих неоднозначных случаев coder.typeof использует эвристику, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте методы makeHeterogeneous или makeHomogeneous.

Введенный в R2015b

Была ли эта тема полезной?