主要内容

创建分类阵列

此示例显示如何创建分类数组。分类是一种用于存储来自有限组离散类别的值的数据类型。这些类别可以具有自然顺序,但不需要。分类阵列提供有效的存储和方便的数据操作,同时也为值维护有意义的名称。分类阵列通常用于表格以定义行组。

默认情况下,分类阵列包含没有数学排序的类别。例如,离散的宠物类别集{'狗'猫''鸟'}没有有意义的数学排序,因此Matlab®使用字母顺序排序{'鸟''猫''狗'}序单分类阵列包含具有有意义数学排序的类别。例如,离散的大小类别集{'小号中号大号'}有数学排序小<媒体<大

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

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

你可以使用分类函数从数字阵列,逻辑阵列,字符串数组,字符向量或现有分类数组的逻辑阵列,逻辑阵列,字符串数组,单元格数组中创建一个分类数组。

创建一个包含来自新英格兰的状态名称的一个1×11个字符向量。

状态= [“嘛”“我”“CT”“vt”“我”“nh”“vt”“嘛”“nh”“CT”“ri”];

转换单元格数组,状态,对没有数学顺序的分类阵列。

状态=分类(州)
州=1x11分类柱1到9 m m me ct vt m m m m m me nh柱10到11 ct ri
班级(州)
ANS ='分类'

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

类别(州)
ans =.6x1细胞{'ct'} {'ma'} {'me'} {'nh'} {'ri'} {'r'} {'vt'} {'vt'}

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

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

创建一个包含八个对象的大小的1×8个单元格数组。

AllSizes = [“中等的”“大的”“小的”“小的”“中等的”......“大的”“中等的”“小的”];

细胞阵列,Allsizes.,有三个不同的值:'大的''中等的', 和'小的'。通过字符向量的单元格阵列,没有方便的方法来指示小<媒体<大

转换单元格数组,Allsizes.,到序列分类阵列。用价值计指定值小的中等的, 和大的,定义类别。对于序列分类阵列,指定的第一个类别是最小,最后一个类别是最大的。

valueet = [“小的”“中等的”“大的”];sizeord =分类(AllSizes,Valueet,'序号',真的)
sizeord =.1x8分类柱1到6中小小小中小型大柱7到8中小
班级(sciodord)
ANS ='分类'

分类阵列中值的顺序,sizeord., 保持不变。

列出分类变量中的离散类别,sizeord.

分类(siadeord)
ans =.3x1细胞{'小号中号大号' }

这些类别列于指定的顺序以匹配数学排序小<媒体<大

通过分组数字数据创建序列分类阵列

在零和50之间创建100个随机数的向量。

x = rand(100,1)* 50;

使用离散化通过键入值来创建分类数组的功能X。将所有值与零和15之间的所有值放在第一个箱中,在第二个箱中的所有值之间,在第三个箱中的35到50之间的所有值之间。每个垃圾箱都包括左端点,但不包括右端点。

catnames = [“小的”“中等的”“大的”];binneddata =离散化(x,[0 15 35 50],'分类',Catnames);

binneddata.是一个100×1个序列分类阵列,其中三类,这样小<媒体<大

使用概括函数打印每个类别中的元素数。

摘要(BinnedData)
小30媒体35大35

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

从R2016B开始,您可以使用该r2016b创建字符串数组细绳函数并将它们转换为分类数组。

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

str = [“地球”“木星”“海王星”“木星”“火星”“地球”]
str =1x6字符串“地球”“木星”“海王星”“木星”“火星”“地球”

转变str.到一个分类的数组。

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

添加缺少的元素str.并将其转换为分类阵列。在哪里str.有缺失的值,行星具有未定义的值。

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

也可以看看

|||

相关例子

更多关于