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
Средняя
, и 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
.
Для того, чтобы объединить или сравнить два категориальных массива, наборы категорий для обоих входных массивов должны быть идентичными, включая их порядок. Кроме того, порядковые категориальные массивы всегда защищаются. Поэтому, когда вы присваиваете значения порядковому категориальному массиву, значения должны принадлежать одной из существующих категорий. Для получения дополнительной информации смотрите работу с Защищенными Категориальными массивами.
categorical
| categories
| isequal
| isordinal