exponenta event banner

isHeterogeneous

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

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

Синтаксис

tf = isHeterogeneous(t)

Описание

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

Примеры

развернуть все

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

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

coder.CellType
   1x2 heterogeneous cell 
      f0: 1x1 char
      f1: 1x1 double

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

isHeterogeneous(t)
ans =

     1

Запись функции assign_name. Если тип ввода t является гетерогенным, функция возвращает копию t. Копия указывает имя структурного типа, представляющего тип массива ячеек в сгенерированном коде.

function ts = assign_name(t, str_name)
assert(isHeterogeneous(t));
ts = coder.cstructname(t, str_name);
disp ts
end

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

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

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

tc1 = assign_name(tc, 'myname')

Утверждения не выполняются, потому что tc не является неоднородным.

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

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

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

tc1 = assign_name(tc, 'myname')
tc1 = 

coder.CellType
   1x2 heterogeneous cell myname
      f0: 1x1 char
      f1: 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