Categorical Array Limitations for Code Generation - MATLAB & Simulink (original) (raw)
When you create categorical arrays in MATLABĀ® code that you intend for code generation, you must specify the categories and elements of each categorical array by using the categorical
function. SeeCategorical Arrays.
For categorical arrays, code generation does not support the following inputs and operations:
- Arrays of MATLAB objects.
- Sparse matrices.
- Duplicate category names when you specify them using the
categoryNames
input argument of thecategorical
function. - Growth by assignment. For example, assigning a value beyond the end of an array produces an error.
function c = foo() %#codegen
c = categorical(1:3,1:3,{'small','medium','large'});
c(4) = 'medium';
end - Adding a category. For example, specifying a new category by using the
=
operator produces an error, even when the categorical array is unprotected.
function c = foo() %#codegen
c = categorical(1:3,1:3,{'small','medium','large'});
c(1) = 'extra-large';
end - Deleting an element. For example, assigning an empty array to an element produces an error.
function c = foo() %#codegen
c = categorical(1:3,1:3,{'small','medium','large'});
c(1) = [];
end - Converting categorical values to text by using the
char
orstring
functions. To convert elements of a categorical array to text, use thecellstr
function.
Limitations that apply to classes also apply to categorical arrays. For more information, see MATLAB Classes Definition for Code Generation.