文档

创建分类数组

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

默认情况下,分类数组包含没有数学顺序的类别。例如,宠物类别的离散集{'狗' '猫' '鸟'}没有有意义的数学排序,所以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 '}

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

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

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

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

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

转换单元格数组,AllSizes,转换为有序分类数组。使用valueset要指定值媒介,,定义类别。对于序数分类数组,指定的第一个类别为最小类别,最后一个类别为最大类别。

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

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

在分类变量中列出离散类别,sizeOrd

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

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

创建序号分类数组由分箱数值数据

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

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

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

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

binnedData一个100乘1的有序分类数组有三个类别,这样吗小号<中号<大号

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

总结(binnedData)
小30中35大35

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

方法创建字符串数组,从R2016b开始字符串函数并将它们转换为分类数组。

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

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

转换str到一个分类数组。

行星=分类(str)
行星=1x6分类数组地球木星海王星木星火星地球

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

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

另请参阅

|||

相关的例子

更多关于

这个话题有用吗?