isHeterogeneous

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

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

Синтаксис

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

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

Введенный в R2015b