Этот пример показывает, как использовать реляционные операции с категориальным массивом.
Создайте 2 4 массив ячеек из символьных векторов.
C = {'blue' 'red' 'green' 'blue';... 'blue' 'green' 'green' 'blue'}; colors = categorical(C)
colors = 2x4 categorical array
blue red green blue
blue green green blue
colors
является 2 4 категориальным массивом.
Перечислите категории категориального массива.
categories(colors)
ans = 3x1 cell array
{'blue' }
{'green'}
{'red' }
Используйте оператор отношения, eq
(==
), чтобы сравнить первые и вторые строки colors
.
colors(1,:) == colors(2,:)
ans = 1x4 logical array
1 0 1 1
Только значения во втором столбце отличаются между строками.
Сравните целый категориальный массив, colors
, к вектору символа 'blue'
, чтобы найти местоположение всех значений blue
.
colors == 'blue'
ans = 2x4 logical array
1 0 0 1
1 0 0 1
Существует четыре синих записи в colors
, один в каждом углу массива.
Добавьте математическое упорядоченное расположение категориям в colors
. Задайте порядок категории, который представляет упорядоченное расположение спектра цветов, red < green < blue
.
colors = categorical(colors,{'red','green' 'blue'},'Ordinal',true)
colors = 2x4 categorical array
blue red green blue
blue green green blue
Элементы в категориальном массиве остаются то же самое.
Перечислите дискретные категории в colors
.
categories(colors)
ans = 3x1 cell array
{'red' }
{'green'}
{'blue' }
Определите, больше ли элементы в первом столбце colors
, чем элементы во втором столбце.
colors(:,1) > colors(:,2)
ans = 2x1 logical array
1
1
Оба значения в первом столбце, blue
, больше, чем соответствующие значения во втором столбце, red
и green
.
Найдите все элементы в colors
, которые являются меньше, чем 'blue'
.
colors < 'blue'
ans = 2x4 logical array
0 1 1 0
0 1 1 0
Функциональный lt
(<
) указывает на местоположение всего green
и значений red
с 1
.