exponenta event banner

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

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

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