isHeterogeneous

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

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

Введенный в R2015b