exponenta event banner

Порядковые категориальные массивы

Порядок категорий

categorical - тип данных для хранения данных со значениями из конечного набора дискретных категорий, которые могут иметь естественный порядок. Можно задать и изменить порядок категорий во всех категориальных массивах. Однако можно рассматривать только порядковые категориальные массивы как имеющие математическое упорядочение по их категориям. Используйте порядковый категориальный массив, если вы хотите использовать функции min, maxили реляционные операции, такие как больше и меньше.

Дискретный набор категорий домашних животных {'dog' 'cat' 'bird'} не имеет значимого математического упорядочения. Вы можете использовать любой порядок категорий, и значение связанных данных не изменяется. Например, pets = categorical({'bird','cat','dog','dog','cat'}) создает категориальный массив, и категории перечисляются в алфавитном порядке, {'bird' 'cat' 'dog'}. Можно указать или изменить порядок категорий на {'dog' 'cat' 'bird'} и значение данных не меняется.

порядковые категориальные массивы содержат категории, имеющие значимое математическое упорядочение. Например, дискретный набор категорий размеров {'small', 'medium', 'large'} имеет математический порядок small < medium < large. Первая из перечисленных категорий является наименьшей, а последняя - самой большой. Порядок категорий в порядковом категориальном массиве влияет на результат реляционных сравнений порядковых категориальных массивов.

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

В этом примере показано, как создать порядковый категориальный массив с помощью categorical функции с помощью 'Ordinal',true аргумент пары имя-значение.

Порядковый категориальный массив из массива ячеек символьных векторов

Создайте порядковый категориальный массив, sizes, из массива ячеек символьных векторов, A. Использовать valueset, указанный как вектор уникальных значений, для определения категорий для sizes.

A = {'medium' 'large';'small' 'medium'; 'large' 'small'};
valueset = {'small', 'medium', 'large'};

sizes = categorical(A,valueset,'Ordinal',true)
sizes = 3x2 categorical
     medium      large  
     small       medium 
     large       small  

sizes 3 на 2 порядковый категориальный массив с тремя категориями, такими, что small < medium < large. Порядок значений в valueset становится порядком категорий sizes.

Порядковый категориальный массив из целых чисел

Создайте эквивалентный категориальный массив из массива целых чисел. Использовать значения 1, 2, и 3 для определения категорий small, medium, и largeсоответственно.

A2 = [2 3; 1 2; 3 1];
valueset = 1:3;
catnames = {'small','medium','large'};

sizes2 = categorical(A2,valueset,catnames,'Ordinal',true)
sizes2 = 3x2 categorical
     medium      large  
     small       medium 
     large       small  

Выдержать сравнение sizes и sizes2

isequal(sizes,sizes2)
ans = logical
   1

sizes и sizes2 эквивалентные категориальные массивы с одинаковым порядком категорий.

Преобразование категориального массива из неупорядоченного в порядковый

Создайте неупорядоченный категориальный массив из массива ячеек символьных векторов, A.

sizes3 = categorical(A)
sizes3 = 3x2 categorical
     medium      large  
     small       medium 
     large       small  

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

isordinal(sizes3)
ans = logical
   0

sizes3 - неупорядоченный категориальный массив с тремя категориями, {'large','medium','small'}. Категории sizes3 являются отсортированными уникальными значениями из A. Необходимо использовать входной аргумент, valueset, чтобы указать другой порядок категорий.

Новообращенный sizes3 к порядковому категориальному массиву, так что small < medium < large.

sizes3 = categorical(sizes3,{'small','medium','large'},'Ordinal',true);

sizes3 теперь является порядковым массивом категорий 3 на 2, эквивалентным sizes и sizes2.

Работа с порядковыми категориальными массивами

Для объединения или сравнения двух категориальных массивов наборы категорий для обоих входных массивов должны быть идентичными, включая их порядок. Кроме того, порядковые категориальные массивы всегда защищены. Поэтому при назначении значений массиву порядковых категорий значения должны принадлежать одной из существующих категорий. Дополнительные сведения см. в разделе Работа с защищенными категориальными массивами.

См. также

| | |

Связанные примеры

Подробнее