主要内容

代码生成的分类数组限制

当您在用于代码生成的 MATLAB® 代码中创建分类数组时,必须使用 categorical 函数指定每个分类数组的类别和元素。请参阅分类数组

对于分类数组,代码生成不支持以下输入和操作:

  • MATLAB 对象数组。

  • 稀疏矩阵。

  • 使用 categorical 函数的 categoryNames 输入参量指定类别名称时的重复类别名称。

  • 通过赋值实现增长。例如,在数组末尾以外赋值会生成错误。

    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
    
  • 使用 charstring 函数将分类值转换为文本。要将分类数组的元素转换为文本,请使用 cellstr 函数。

适用于类的限制也适用于分类数组。有关详细信息,请参阅 用于代码生成的 MATLAB 类定义 (MATLAB Coder)

另请参阅

|

主题