类别数组使用来自有限的离散类别集的值存储数据。您可以为类别指定一个顺序,但这不是必需的。类别数组提供了对非数值数据的有效存储和操作,同时还维护了值的有意义的名称。
当你使用分类数组与代码生成,坚持这些限制:
对于代码生成,请使用分类
函数创建分类数组。例如,假设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 若要将类别数组的一个或多个元素转换为文本,请使用 |
索引操作 |
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工具箱函数: