isHomogeneous

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

Определите, представляет ли тип массива ячеек однородный массив ячеек

Синтаксис

tf = isHomogeneous(t)

Описание

tf = isHomogeneous(t) возвращает true если coder.CellType t объекта представляет однородный массив ячеек. В противном случае возвращается false.

Примеры

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

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

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

coder.CellType
   1x3 homogeneous cell 
      base: 1x1 double

Определите, coder.CellType ли объект представляет однородный массив ячеек.

isHomogeneous(t)
ans =

     1

Написание функции make_varsize. Если тип входного сигнала t однородна, функция возвращает копию переменного размера t.

function c = make_varsize(t, n)
assert(isHomogeneous(t));
c = coder.typeof(t, [n n], [1 1]);
end

Создайте неоднородный тип tc.

tc = coder.typeof({'a', 1});

Передайте tc кому make_varsize.

tc1 = make_varsize(tc, 5)

Утверждение прекращает работать из-за tc неоднороден.

Создайте однородный тип tc.

tc = coder.typeof({1 2 3});

Проход tc кому make_varsize.

tc1 = make_varsize(tc, 5)
tc1 = 

coder.CellType
   :5x:5 homogeneous cell 
      base: 1x1 double

Совет

  • 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