类别数组的代码生成

类别数组使用来自有限的离散类别集的值存储数据。您可以为类别指定一个顺序,但这不是必需的。类别数组提供了对非数值数据的有效存储和操作,同时还维护了值的有意义的名称。

当你使用分类数组与代码生成,坚持这些限制:

定义用于代码生成的分类数组

对于代码生成,请使用分类函数创建分类数组。例如,假设MATLAB的输入参数®函数是一个任意大小的数字数组,其元素的值为1,2,或3.。您可以将这些值转换为类别,媒介,并将输入数组转换为一个分类数组,如下面的代码所示。

函数c = foo (x)% # codegenc =分类(x, 1:3, {“小”,“媒介”,“大”});结束

允许对分类数组进行操作

对于代码生成,你只限于在本表所列分类阵列的操作。

操作 例子 笔记

赋值运算符:=

c =分类(1:3,1:3,{“小”,“媒介”,“大”});c (1) =“大”;

代码生成不支持使用赋值操作符金宝app=:

  • 删除的元素。

  • 扩展分类数组的大小。

  • 添加一个新的类别,即使数组没有被保护。

关系运算符:< > <= >= == ~=

c =分类(1:3,“顺序”,真正的);tf = c(1) < c(2);

代码生成支持所有关系运算符。金宝app

转换为数字类型

c =分类(1:3);双(c (1));

代码生成支持将类别数组转换为双精金宝app度或单精度浮点数数组或整数数组。

转换为文本

c =分类(1:3,1:3,{“小”,“媒介”,“大”});c1 = cellstr (c (1));%一个元素c2 = cellstr (c);%的整个数组

代码生成不支持使用金宝app字符字符串函数将分类值转换为文本。

若要将类别数组的一个或多个元素转换为文本,请使用cellstr函数。

索引操作

c =分类(1:3,1:3,{“小”,“媒介”,“大”});idx = [1 2];c (idx);idx = logical([1 1 0]);c (idx);

代码生成支持按位置、线性索引和逻金宝app辑索引进行索引。

连接

c1 =分类(1:3,1:3,{“小”,“媒介”,“大”});c2 = categorical(4:6,[2 1 4],{“媒介”,“小”,“超大”});c = [c1 c2];

代码生成支持沿任何维度连接分类数金宝app组。

MATLAB支持分类数组的工具箱函数金宝app

对于代码生成,您可以使用分类数组与这些MATLAB工具箱函数:

相关话题