文档

创建分类数组

这个例子展示了如何创建一个分类数组。分类是一种数据类型,用于存储具有来自有限离散类别集的值的数据。这些类别可以有一个自然的顺序,但这不是必需的。分类数组提供了有效的数据存储和方便的数据操作,同时还为值维护有意义的名称。类别数组常用于表中定义行组。

默认情况下,类别数组包含没有数学排序的类别。例如,宠物类别的离散集合{'狗' '猫' '鸟'}没有意义的数学排序,所以MATLAB®使用字母排序{'鸟' '猫' '狗'}序数类别数组包含具有有意义的数学排序的类别。例如,大小类别的离散集合{'小','中','大'}有数学顺序小的<中的<大的

当从字符向量的单元格数组或字符串数组创建分类数组时,将删除前导和尾随空格。例如,如果您指定文本{'cat' 'dog'}作为类别,那么当您将它们转换为类别时,它们就变成{'cat' 'dog'}。

从字符向量的单元格数组创建分类数组

您可以使用分类函数从数字数组、逻辑数组、字符串数组、字符向量的单元格数组或现有的类别数组创建类别数组。

创建一个包含新英格兰州名的字符向量的1 × 11单元格数组。

状态= {“马”“我”“CT”“v”“我”“NH”“v”“马”“NH”“CT”“扶轮”};

转换单元格数组,状态,到一个没有数学顺序的类别数组。

状态=绝对的(状态)
状态=1x11分类数组第1至9列MA ME CT VT ME NH VT MA NH第10至11列CT RI
类(状态)
Ans =“绝对的”

列出变量中的离散类别状态

类别(状态)
ans =6x1单元阵列{' ct '} {' ma '} {' me '} {' nh '} {' ri '} {' vt '}

这些类别是按字母顺序列出的。

从字符向量的单元格数组创建序数分类数组

创建一个1 × 8的字符向量单元格数组,包含8个对象的大小。

AllSizes = {“媒介”“大”“小”“小”“媒介”...“大”“媒介”“小”};

单元格数组,AllSizes,有三个不同的值:“大”“媒介”,“小”.对于字符向量的单元格数组,没有方便的方法来表示这一点小的<中的<大的

转换单元格数组,AllSizes,到一个序数分类数组。使用valueset要指定这些值媒介,,它们定义了类别。对于序号类别数组,指定的第一个类别是最小的,最后一个类别是最大的。

值集= {“小”“媒介”“大”};sizeOrd = categorical(AllSizes,valueset,“顺序”,真正的)
sizeOrd =1x8分类数组第1至6列中、大、小、中、大第7至8列中、小
类(sizeOrd)
Ans =“绝对的”

分类数组中值的顺序,sizeOrd,保持不变。

列出类别变量中的离散类别,sizeOrd

类别(sizeOrd)
ans =3x1单元阵列{'小'}{'中'}{'大'}

类别按指定的顺序列出,以匹配数学顺序小的<中的<大的

创建序数分类数组由bin数值数据

创建一个包含100个0到50之间随机数的向量。

X =兰特(100,1)*50;

使用离散化函数通过对的值进行分组来创建类别数组x.把0到15之间的所有值放在第一个箱子里,把15到35之间的所有值放在第二个箱子里,把35到50之间的所有值放在第三个箱子里。每个bin都包括左端点,但不包括右端点。

猫名= {“小”“媒介”“大”};binnedData = discrete alize (x,[0 15 35 50],“分类”, catnames);

binnedData一个包含三个类别的100 × 1序数类别数组是这样的吗小的<中的<大的

使用总结函数来打印每个类别中的元素数量。

总结(binnedData)
小的30中的35大的35

从字符串数组创建分类数组

从R2016b开始,您可以使用字符串函数并将它们转换为分类数组。

创建一个包含行星名称的字符串数组。

STR = string“地球”“木星”“海王星”“木星”“火星”“地球”})
str =1x6字符串数组"地球" "木星" "海王星" "木星" "火星" "地球"

转换str到一个类别数组。

行星=类别(str)
行星=1x6分类阵列地球木星海王星木星火星地球

添加缺失的元素str然后把它转换成一个分类数组。在哪里str有缺失的值,行星没有定义值。

str (8) =“火星”
str =1x8字符串数组第1至6列“地球”“木星”“海王星”“木星”“火星”“地球”第7至8列<缺少>“火星”
行星=类别(str)
行星=1x8分类数组第1至6列地球木星海王星木星火星地球第7至8列<未定义>火星

另请参阅

|||

相关的例子

更多关于