Когда вы создаете категориальные массивы в 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 Coder).