При создании категориальных массивов в коде MATLAB ®, предназначенных для создания кода, необходимо указать категории и элементы каждого категориального массива с помощью categorical функция. См. раздел Категориальные массивы.
Для категориальных массивов генерация кода не поддерживает следующие входные данные и операции:
Массивы объектов 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
Преобразование категориальных значений в текст с помощью char или string функции. Чтобы преобразовать элементы категориального массива в текст, используйте cellstr функция.
Ограничения, применимые к классам, также применяются к категориальным массивам. Для получения дополнительной информации см. Определение классов MATLAB для генерации кода (кодер MATLAB).