Remove categories from categorical array



B = removecats(A) removes unused categories from the categorical array, A. The output categorical array, B, has the same size and values as A. However, B possibly has fewer categories.


B = removecats(A,oldcats) removes the categories specified by oldcats. The function removecats removes categories, but does not remove any elements of the array. Therefore, elements of B, whose values correspond to oldcats, are undefined.


collapse all

Create a categorical array representing political parties of four people.

A = categorical({'republican' 'democrat' 'democrat' 'republican'},...
    {'democrat' 'republican' 'independent'})
A = 1x4 categorical
     republican      democrat      democrat      republican 

A is a 1-by-4 categorical array.

Summarize the categorical array, A.

     democrat      republican      independent 
     2             2               0           

A has three categories. democrat appears twice in the array, republican appears twice in the array, and independent is unused.

Remove the unused category, independent.

B = removecats(A)
B = 1x4 categorical
     republican      democrat      democrat      republican 

B has the same values as A.

Display the categories of B.

ans = 2x1 cell
    {'democrat'  }

B has fewer categories than A.

Create a categorical array, A, containing modes of transportation.

A = categorical({'plane' 'car'; 'train' 'car'; 'plane' 'car'})
A = 3x2 categorical
     plane      car 
     train      car 
     plane      car 

A is a 3-by-2 categorical array.

Display the categories of A.

ans = 3x1 cell
    {'car'  }

A has three categories, car, plane, and train.

Remove the category, train.

B = removecats(A,'train')
B = 3x2 categorical
     plane            car 
     <undefined>      car 
     plane            car 

The element that was from the category train is now undefined.

Display the categories of B.

ans = 2x1 cell
    {'car'  }

B has one fewer category than A.

Input Arguments

collapse all

Categorical array, specified as a vector, matrix, or multidimensional array.

Categories to remove, specified as a character vector, a cell array of character vectors, or a string array. The default is all the unused categories from A.


  • ~ismember(categories(A),unique(A)) returns logical true (1) for any unused category of A.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2013b