Когда вы создаете категориальные массивы в коде MATLAB®, который вы предназначаете для генерации кода, необходимо задать категории и элементы каждого категориального массива при помощи categorical
функция. См. Категориальные массивы (MATLAB).
Для категориальных массивов генерация кода не поддерживает следующие входные параметры и операции:
Массивы объектов MATLAB.
Разреженные матрицы.
Дублирующиеся названия категории, когда вы задаете их использующий categoryNames
входной параметр categorical
функция.
Рост присвоением. Например, присвоение значения вне конца массива производит ошибку.
function c = foo() %#codegen c = categorical(1:3,1:3,{'small','medium','large'}); c(4) = 'medium'; end
Добавление категории. Например, задавая новую категорию при помощи =
оператор производит ошибку, даже когда категориальный массив незащищен.
function c = foo() %#codegen c = categorical(1:3,1:3,{'small','medium','large'}); c(1) = 'extra-large'; end
Удаление элемента. Например, присвоение пустого массива к элементу производит ошибку.
function c = foo() %#codegen c = categorical(1:3,1:3,{'small','medium','large'}); c(1) = []; end
Добавление, удаляя или изменяя категории при помощи этих функций:
addcats
mergecats
removecats
renamecats
reordercats
setcats
Преобразование категориальных значений к тексту при помощи char
или string
функции. Чтобы преобразовать элементы категориального массива к тексту, используйте cellstr
функция.
Ограничения, которые применяются к классам также, применяются к категориальным массивам. Для получения дополнительной информации см. Определение Классов MATLAB для Генерации кода (MATLAB Coder).