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

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

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.

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

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

См. также

| | |

Похожие примеры

Подробнее о