主要内容

分类

数组包含值分配给类

描述

分类是一种数据类型,将值赋给一组有限的离散的类别,如,地中海,。这些类别有一个数学订购,你可以指定,如地中海高> >低,但这不是必需的。分类数组提供非数字数据的高效存储和方便的操作,同时还保持有意义的名称的值。常用的分类数组指定组一个表中的记录。

创建

描述

例子

B =分类(一个)创建一个分类数组的数组一个。的类别B排序的独特的价值观来自哪里一个

例子

B =分类(一个,valueset)为每个值创建一个类别valueset。的类别B在同一顺序的值吗valueset

您可以使用valueset没有出现在包括类别值一个。相反,如果一个没有出现在包含任何值valueset的,那么相应的元素B是未定义的。

例子

B =分类(一个,valueset,catnames)名称的类别B通过匹配类别的值valueset的名字catnames

例子

B =分类(一个,___,名称,值)创建一个分类数组指定的一个或多个额外的选项名称,值对参数。您可以包括任何输入参数在以前的语法。

例如,表明类别有一个数学排序,指定“顺序”,真的

输入参数

全部展开

输入数组,指定为一个数值数组,逻辑数组,直言数组,数组datetime,持续时间数组,字符串数组或单元阵列特征向量。

分类删除首尾空格的输入值是字符串或字符向量。

如果一个包含缺失值,那么相应的元素B定义和显示是吗<定义>。的分类函数定义分类值转换为以下值:

  • 在数字和时间数组

  • 失踪的字符串(<失踪>)或空字符串(”“)的字符串数组

  • 空字符向量()在细胞阵列的特征向量

  • NaTdatetime数组

  • 未定义的值(<定义>)分类数组

B没有一个类别未定义的值。创建一个明确的类别为丢失或未定义的值,你必须包括所需的类别名称catnames和一个缺失值的对应值valueset

一个也可以是一个对象数组和类方法如下:

  • 独特的

  • 情商

分类,指定为一个向量独特的价值观。的数据类型valueset的数据类型一个必须相同,除了当吗一个是一个字符串数组。在这种情况下,valueset可以是一个字符串数组或单元阵列的特征向量。

分类删除首尾空格的元素valueset字符串或字符向量。

类别名称,指定为一个单元阵列特征向量或一个字符串数组。如果你不指定catnames输入参数,然后分类使用的值valueset类别名称。

合并多个不同的值一个到一个类别B,包括重复名称对应于这些值。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“顺序”,真的指定的类别有一个数学订购。

序数变量指标,指定为逗号分隔组成的“顺序”,要么(0)或真正的(1)。

(0)

分类创建一个分类数组不是顺序,这是默认行为。

的类别B没有数学订购。因此,您可以比较的值B仅供平等。你不能使用任何其他关系操作符对值进行比较。

真正的(1)

分类创建一个顺序分类数组。

的类别B数学订购,这样第一类指定是最小的,最后一个类别是最大的。你可以比较的值B使用关系运算符,例如小于和大于,除了比较平等的值。你也可以使用最小值马克斯函数在一个顺序分类数组。

有关更多信息,请参见顺序分类数组

保护类指标,指定为逗号分隔组成的“保护”,要么(0)或真正的(1)。序数的类别分类数组总是保护。默认值是真正的当你指定“顺序”,真的。否则,该值

(0)

当你分配新值B,类别自动更新。因此,您可以结合不同类别(nonordinal)分类数组。可以更新相应的类别包括数组的类别。

真正的(1)

当你分配新值B,现有的值必须属于一个类别。因此,你只能把数组具有相同的类别。添加新类别B,你必须使用函数addcats

例子

全部折叠

创建一个分类数组气象站标签。将它添加到一个表的温度读数。然后使用类别选择站温度读数。

首先,创建数组包含温度、日期和车站标签。

临时工= [58;72;56;90;76);日期= {“2017-04-17”;“2017-04-18”;“2017-04-30”;“2017-05-01”;“2017-04-27”};站= {“S1 ';“S2”;“S1 ';“S3”;“S2”};

转换分类数组。

站=分类(站)
站=5 x1分类S1 S2 S1 S3 S2

显示类别。这三个站标签类别。

类别(站)
ans =3 x1细胞{' S1 '} {S2的}{S3的}

创建一个表,其中包含温度、日期和车站标签。

T =表(临时工、日期、站)
T =5×3表临时工日期站________ 58 _____ * * * {‘2017-04-17’}S1 72 {‘2017-04-18’} S2 56 {‘2017-04-30’} S1 90 {‘2017-05-01’} S3 76 {‘2017-04-27’} S2

显示数据取自站S2。您可以使用= =运营商找到的值这等于S2。然后使用逻辑索引选择从站数据表中的行S2

TF = (T。站= =“S2”);T (TF,:)
ans =2×3表临时工日期______ 72电台_____ * * * {‘2017-04-18’}S2 76 {‘2017-04-27’} S2

把特征向量的单元阵列一个分类数组。指定类别的一个列表,其中包括不存在的值一个

创建一个单元阵列的特征向量。

一个= {“共和党人”“民主党人”;“民主党人”“民主党人”;“民主党人”“共和党人”};

转换一个分类数组。添加一个类别独立的

valueset = {“民主党人”“共和党人”“独立”};valueset B =分类(一)
B =3 x2分类民主党共和党民主党民主党民主党共和党人

显示类别的B

类别(B)
ans =3 x1细胞{“民主党”}{“共和党”}{'独立'}

创建一个数字数组。

= (1 2 3;2 1 3;3一2)
一个=3×31 3 2 2 1 3 3 1 2

转换一个分类数组B并指定类别的名称。

B =分类(A (1 2 3) {“红色”“绿色”“蓝”})
B =3 x3的分类红蓝绿绿红蓝蓝红绿色

显示类别的B

类别(B)
ans =3 x1细胞{'红色'}{“绿色”}{“蓝”}

B不是一个顺序分类数组。因此,您可以比较的值B只有使用平等的运营商,= =~ =

找到属于类别的元素“红色”。使用逻辑索引访问这些元素。

TF = (B = =“红色”);B (TF)
ans =3 x1分类红红红

创建一个5×2数字数组。

(3 2;3 3;3 = 2;2 1;3 2]
一个=5×23 2 3 3 3 2 2 1 3 2

转换一个顺序分类数组中1,2,3代表类别孩子,成人,高级分别。

valueset = [1:3];catnames = {“孩子”“成人”“高级”};B =分类(A valueset catnames,“顺序”,真正的)
B =5 x2分类资深高级资深高级成人成人儿童高级成人

B序数,类别的B有一个数学订购,孩子成人< <高级

从R2017a,您可以创建使用双引号字符串数组。一个字符串数组可以有缺失值,显示为<失踪>,没有引号。

str = [“平面”,“喷气机”,“平面”,“直升飞机”失踪,“喷气机”]
str =1 x6字符串“飞机”“喷气机”“飞机”“直升机”<失踪>“喷气机”

转换字符串数组str分类数组。的分类将丢失的字符串转换为未定义的分类值,显示为<定义>

C =分类(str)
C =1 x6分类飞机喷气式飞机直升机<定义>飞机

使用离散化函数(而不是分类)本100随机数分成三个类别。

x =兰德(100 1);y =离散化(x, (0 .25。1)“分类”,{“小”,“媒介”,“大”});总结(y)
小22中46大32

提示

  • 一个功能列表,接受或返回分类数组,明白了分类数组

  • 如果输入数组数字、日期时间或持续时间值相互靠得太近,那么分类函数重复的值。例如,分类(1.00001 [1])截断输入数组的第二个元素。从数值数据创建类别,使用离散化函数。

选择

你也可以把数字数据分类使用离散化

扩展功能

版本历史

介绍了R2013b