isHomogeneous

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

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

Синтаксис

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

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

Введенный в R2015b