В этом примере показано, как использовать реляционные операции с категориальным массивом.
Создайте массив символьных векторов 2 на 4.
C = {'blue' 'red' 'green' 'blue';...
'blue' 'green' 'green' 'blue'};
colors = categorical(C)colors = 2x4 categorical
blue red green blue
blue green green blue
colors является категориальным массивом 2 на 4.
Перечислите категории категориального массива.
categories(colors)
ans = 3x1 cell
{'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
blue red green blue
blue green green blue
Элементы в категориальном массиве остаются прежними.
Перечислить дискретные категории в colors.
categories(colors)
ans = 3x1 cell
{'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.