isHomogeneous

Класс: кодер. 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 использует эвристику, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте методы makeHeterogeneous или makeHomogeneous. Метод makeHomogeneous делает гомогенную копию типа. Метод makeHeterogeneous делает неоднородную копию типа.

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

Введенный в R2015b

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