isprotected

Определите, защищены ли категории категориального массива

Синтаксис

tf = isprotected(A)

Описание

пример

tf = isprotected(A) возвращает логический 1 (true), если категории A защищены. В противном случае isprotected возвращает логический 0 (false).

  • tRUE Когда вы присваиваете новые значения B, значения должны принадлежать одной из существующих категорий. Поэтому только можно объединить массивы, которые имеют те же категории. Чтобы добавить новые категории к B, необходимо использовать функцию addcats.

  • ложь Когда вы присваиваете новые значения B, категории обновляют автоматически. Поэтому можно объединить (непорядковые) категориальные массивы, которые имеют различные категории. Категории могут обновить, чтобы включать категории от обоих массивов.

Примеры

свернуть все

Создайте категориальный массив, содержащий размеры 10 объектов. Используйте имена small, medium и large для значений 'S', 'M' и 'L'.

valueset = {'S','M','L'};
catnames = {'small','medium','large'};

A = categorical({'M';'L';'S';'S';'M';'L';'M';'L';'M';'S'},...
    valueset,catnames,'Ordinal',true)
A = 10x1 categorical array
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 

A является категориальным массивом 10 на 1.

Отобразите категории A.

categories(A)
ans = 3x1 cell array
    {'small' }
    {'medium'}
    {'large' }

Определите, защищены ли категории A.

tf = isprotected(A)
tf = logical
   1

Поскольку A является порядковым категориальным массивом, категории защищены. При попытке добавить новое значение, которое не принадлежит одной из существующих категорий, например A(11) = 'xlarge', то ошибка возвращена.

Во-первых, используйте addcats, чтобы добавить новую категорию для xlarge.

A = addcats(A,'xlarge','After','large');

Поскольку A защищен, можно теперь добавить значение для xlarge, поскольку это имеет существующую категорию.

A(11) = 'xlarge'
A = 11x1 categorical array
     medium 
     large 
     small 
     small 
     medium 
     large 
     medium 
     large 
     medium 
     small 
     xlarge 

A является теперь 11 1 категориальным массивом с четырьмя категориями, такими что small < medium < large < xlarge.

Входные параметры

свернуть все

Категориальный массив, заданный как вектор, матрица или многомерный массив.

Категории порядковых категориальных массивов всегда защищаются.

Расширенные возможности

Введенный в R2013b

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