%% Compare Categorical Array Elements
% This example shows how to use relational operations with a categorical array.
%% Create Categorical Array from Cell Array of Character Vectors
% Create a 2-by-4 cell array of character vectors.

C = {'blue' 'red' 'green' 'blue';...
    'blue' 'green' 'green' 'blue'};

colors = categorical(C)

% colors is a 2-by-4 categorical array.
%
% List the categories of the categorical array.

categories(colors)

%
%% Determine If Elements Are Equal
% Use the relational operator, eq (==), to compare the first and second rows of colors.

colors(1,:) == colors(2,:)

% Only the values in the second column differ between the rows.
%
%% Compare Entire Array to Character Vector
% Compare the entire categorical array, colors, to the character vector 'blue' to find the location of all blue values.

colors == 'blue'

% There are four blue entries in colors, one in each corner of the array.
%
%% Convert to an Ordinal Categorical Array
% Add a mathematical ordering to the categories in colors. Specify the category order that represents the ordering of color spectrum, red < green < blue.

colors = categorical(colors,{'red','green' 'blue'},'Ordinal',true)

% The elements in the categorical array remain the same.
%
% List the discrete categories in colors.

categories(colors)

%
%% Compare Elements Based on Order
% Determine if elements in the first column of colors are greater than the elements in the second column.

colors(:,1) > colors(:,2)

% Both values in the first column, blue, are greater than the corresponding values in the second column, red and green.
%
% Find all the elements in colors that are less than 'blue'.

colors < 'blue'

% The function lt (<) indicates the location of all green and red values with 1.
% Copyright 2012 The MathWorks, Inc.