主要内容

分类

包含分配给类别的值的数组

描述

分类是将值分配给有限的离散类别集的数据类型,例如高的,,,,医学, 和低的。这些类别可以具有您指定的数学顺序,例如高> med>低,但这不是必需的。一个分类数组提供了有效的存储和方便的非数字数据操作,同时还可以维护该值的有意义的名称。分类数组的常见用途是在表中指定行组。

创建

描述

例子

b =分类(一种从数组中创建一个分类数组一种。类别b是从中排序的唯一值一种

例子

b =分类(一种,,,,值集为每个值创建一个类别值集。类别b与值的顺序相同值集

您可以使用值集包括不存在的值类别一种。相反,如果一种包含任何不存在的值值集,然后是相应的元素b不确定。

例子

b =分类(一种,,,,值集,,,,猫名命名类别b通过匹配类别值值集带有名字猫名

例子

b =分类(一种,,,,___,,,,名称,价值创建一个分类数组,其中一个或多个指定的其他选项名称,价值配对参数。您可以在先前的语法中包含任何输入参数。

例如,要指示类别具有数学排序,请指定“序数”,真实

输入参数

展开全部

输入数组,指定为数字数组,逻辑数组,分类数组,DateTime数组,持续时间数组,字符串数组或字符向量的单元格数组。

分类从字符串或字符矢量的输入值中删除前导和尾随空间。

如果一种包含缺失值,然后是b不确定,显示为<未定义>。这分类函数将以下值转换为未定义的分类值:

  • 在数字和持续时间阵列中

  • 缺少字符串(<缺少>)或空字符串(“”)在字符串数组中

  • 空字符向量('')在字符矢量的单元格数组中

  • 纳特在DateTime数组中

  • 未定义值(<未定义>)在分类阵列中

b没有未定义值的类别。要为缺失或未定义值创建一个明确类别,您必须在猫名,并且缺少值作为相应的值值集

一种也可以是具有以下类方法的对象数组:

  • 独特

  • 等式

类别,指定为唯一值的向量。数据类型值集以及数据类型一种必须相同,除非一种是字符串数组。在这种情况下,值集可以是字符串数组,也可以是字符向量的单元格数组。

分类从元素中删除领先和落后空间值集是字符串或角色向量。

类别名称,指定为字符向量或字符串数​​组的单元格数组。如果您不指定猫名输入参数,然后分类值集作为类别名称。

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

名称值参数

将可选的参数对name1 = value1,...,namen = valuen, 在哪里姓名是参数名称和价值是相应的值。名称值参数必须在其他参数之后出现,但是对的顺序并不重要。

在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名用引号。

例子:“序数”,真实指定类别具有数学排序。

序数变量指标,指定为逗号分隔对“序数”两者错误的((0) 或者真的((1)。

错误的((0

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

类别b没有数学顺序。因此,您可以比较b仅适用于平等。您无法使用任何其他关系运算符比较值。

真的((1

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

类别b具有数学排序,因此指定的第一个类别是最小的,最后类别是最大的。您可以比较中的值b除了比较平等的值外,使用关系运算符,例如小于和大于和更大的。您也可以使用最小最大限度在顺序分类阵列上的功能。

有关更多信息,请参阅顺序分类阵列

受保护的类别指标,指定为逗号分隔对“受保护”两者错误的((0) 或者真的((1)。顺序分类阵列的类别始终受到保护。默认值是真的指定时“序数”,真实。否则,值是错误的

错误的((0

当您将新值分配给b,类别会自动更新。因此,您可以组合具有不同类别的(非欧洲)分类阵列。这些类别可以相应地更新以包括两个数组中的类别。

真的((1

当您将新值分配给b,值必须属于现有类别之一。因此,您只能组合具有相同类别的数组。将新类别添加到b,您必须使用该功能addcats

例子

全部收缩

创建一个具有气象站标签的分类阵列。将其添加到温度读数表中。然后使用类别通过站选择温度读数。

首先,创建包含温度读数,日期和电台标签的数组。

temps = [58;72;56;90;76];dates = {'2017-04-17';'2017-04-18';'2017-04-30';'2017-05-01';'2017-04-27'};电台= {'S1';'S2';'S1';'S3';'S2'};

转变车站到一个分类阵列。

电台=分类(车站)
电台=5x1分类S1 S2 S1 S3 S2

显示类别。这三个电台标签是类别。

类别(电台)
ans =3x1单元{'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-05-01'} S3 S376 {'2017-04-27'} S2

显示从车站取的读数S2。您可以使用==操作员查找值车站那等等S2。然后使用逻辑索引选择具有来自站点数据的表行S2

tf =(t.stations =='S2');t(tf,:)
ans =2×3桌温度日期电台_____ ______________ ________ 72 {'2017-04-18'} S2 76 {'2017-04-27'} S2

转换字符矢量的单元格数组一种到一个分类阵列。指定包括不存在的值的类别列表一种

创建一个字符向量的单元格数组。

a = {'共和党人''民主党人';'民主党人''民主党人';'民主党人''共和党人'};

转变一种到一个分类阵列。添加类别独立的

valueset = {'民主党人''共和党人''独立的'};b =分类(a,valueset)
b =3x2分类共和党民主党民主党民主党共和党人

显示类别b

类别(b)
ans =3x1单元{'demoprat'} {'共和党'} {'impecende'}

创建一个数字阵列。

a = [1 3 2;2 1 3;3 1 2]
a =3×31 3 2 2 1 3 3 1 2

转变一种分类阵列b并指定类别名称。

b =分类(a,[1 2 3],{'红色的''绿色''蓝色的'})
b =3x3分类红蓝绿色红色红色蓝色红色绿色

显示类别b

类别(b)
ans =3x1单元{'red'} {'green'} {'蓝色'}

b不是序数分类阵列。因此,您可以比较b仅使用平等操作员==〜=

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

tf =(b =='红色的');B(TF)
ans =3x1分类红色红色

创建一个5 x-2数字阵列。

a = [3 2; 3 3; 3 2; 2 1; 3 2]
a =5×23 2 3 3 3 2 2 1 3 2

转变一种到一个顺序的分类阵列1,,,,2, 和3代表类别孩子,,,,成人, 和高级的分别。

valueset = [1:3];catNames = {'孩子''成人''高级的'};b =分类(a,valueset,catnames,“序数”,真的)
b =5x2分类高级成人高年级高级成年子女高级成人

自从b是序数,类别b有数学排序,儿童<成人<高级

从R2017A开始,您可以使用双引号创建字符串数组。此外,字符串数组可以具有缺失的值,显示为<缺少>,没有引号。

str = [“飞机”,,,,“喷射”,,,,“飞机”,,,,“直升机”,失踪,“喷射”这是给予的
str =1x6字符串“飞机”“喷气”“飞机”“直升机” <缺少>“喷气”

转换字符串数组str到一个分类阵列。这分类功能将缺少字符串转换为未定义的分类值,显示为<未定义>

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

使用离散功能(而不是分类)将100个随机数分为三类。

x = rand(100,1);y =离散(x,[0 .25 .75 1],“分类”,{'小的',,,,'中等的',,,,'大的'});摘要(y)
小型22中46大32

尖端

  • 有关接受或返回分类数组的函数列表,请参见分类阵列

  • 如果输入数组的数字,日期时间或持续时间值太近,则分类函数将它们截断为重复值。例如,分类([1 1.00001])截断输入数组的第二个元素。要从数字数据创建类别,请使用离散功能。

备择方案

您还可以使用离散

扩展功能

版本历史记录

在R2013B中引入