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