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

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

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 array
     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 array
     medium      large  
     small       medium 
     large       small  

Сравните sizes и sizes2

isequal(sizes,sizes2)
ans = logical
   1

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

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

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

sizes3 = categorical(A)
sizes3 = 3x2 categorical array
     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.

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

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

Смотрите также

| | |

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

Больше о