分类
包含分配给类别的值的数组
描述
分类
是将值分配给有限的离散类别集的数据类型,例如高的
,,,,医学
, 和低的
。这些类别可以具有您指定的数学顺序,例如高> med>低
,但这不是必需的。一个分类数组提供了有效的存储和方便的非数字数据操作,同时还可以维护该值的有意义的名称。分类数组的常见用途是在表中指定行组。
创建
描述
输入参数
一种
-输入数组
数字阵列|逻辑阵列|分类阵列|DateTime数组|持续时间阵列|字符串数组|字符向量的单元格数
输入数组,指定为数字数组,逻辑数组,分类数组,DateTime数组,持续时间数组,字符串数组或字符向量的单元格数组。
分类
从字符串或字符矢量的输入值中删除前导和尾随空间。
如果一种
包含缺失值,然后是b
不确定,显示为<未定义>
。这分类
函数将以下值转换为未定义的分类值:
南
在数字和持续时间阵列中缺少字符串(
<缺少>
)或空字符串(“”
)在字符串数组中空字符向量(
''
)在字符矢量的单元格数组中纳特
在DateTime数组中未定义值(
<未定义>
)在分类阵列中
b
没有未定义值的类别。要为缺失或未定义值创建一个明确类别,您必须在猫名
,并且缺少值作为相应的值值集
。
一种
也可以是具有以下类方法的对象数组:
独特
等式
值集
-类别
独特(a)
(默认)|独特价值的向量
类别,指定为唯一值的向量。数据类型值集
以及数据类型一种
必须相同,除非一种
是字符串数组。在这种情况下,值集
可以是字符串数组,也可以是字符向量的单元格数组。
分类
从元素中删除领先和落后空间值集
是字符串或角色向量。
猫名
-类别名称
字符向量的单元格数|字符串数组
类别名称,指定为字符向量或字符串数组的单元格数组。如果您不指定猫名
输入参数,然后分类
在值集
作为类别名称。
合并多个不同的值一种
分为一个类别b
,包括对应于这些值的重复名称。
将可选的参数对name1 = value1,...,namen = valuen
, 在哪里姓名
是参数名称和价值
是相应的值。名称值参数必须在其他参数之后出现,但是对的顺序并不重要。
在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名
用引号。
例子:“序数”,真实
指定类别具有数学排序。
序数
-序数变量指标
错误的
(默认)|真的
序数变量指标,指定为逗号分隔对“序数”
两者错误的
((0
) 或者真的
((1
)。
|
类别 |
|
类别 |
有关更多信息,请参阅顺序分类阵列。
受保护
-受保护的类别指标
错误的
|真的
受保护的类别指标,指定为逗号分隔对“受保护”
两者错误的
((0
) 或者真的
((1
)。顺序分类阵列的类别始终受到保护。默认值是真的
指定时“序数”,真实
。否则,值是错误的
。
|
当您将新值分配给 |
|
当您将新值分配给 |
例子
转换数组并按类别选择数据
创建一个具有气象站标签的分类阵列。将其添加到温度读数表中。然后使用类别通过站选择温度读数。
首先,创建包含温度读数,日期和电台标签的数组。
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分类飞机喷射飞机直升机<未定义>喷气机
bin数字数据分类
使用离散
功能(而不是分类
)将100个随机数分为三类。
x = rand(100,1);y =离散(x,[0 .25 .75 1],“分类”,{'小的',,,,'中等的',,,,'大的'});摘要(y)
小型22中46大32
尖端
有关接受或返回分类数组的函数列表,请参见分类阵列。
如果输入数组的数字,日期时间或持续时间值太近,则
分类
函数将它们截断为重复值。例如,分类([1 1.00001])
截断输入数组的第二个元素。要从数字数据创建类别,请使用离散
功能。
备择方案
您还可以使用离散
。
扩展功能
高阵列
用比在内存中拟合更多的行的数组计算。
C/C ++代码生成
使用MATLAB®CODER™生成C和C ++代码。
用法注释和限制:
从R2019A开始,您可以在MATLAB中使用分类阵列®用于代码生成的代码。有关更多信息,请参阅分类阵列的代码生成(MATLAB编码器)和代码生成的分类数组限制(MATLAB编码器)。
分布式阵列
使用Parallel Computing Toolbox™,将群集组合内存的组合存储器划分。
版本历史记录
Ouvrir l'Eff
vouspossédezune版本modifiéedecet典范。souhaitez-vous ouvrir cet典范AVEC VOS修改?
命令matlab
Vous Avezcliquésur un lien qui sosideàcettecommande matlab:
pourexécuterla Commande,Saisissez-la dan dan lafenêtredecommande de Matlab。Les导航Web NE支持者PAS LES命令金宝appMATLAB。
您还可以从以下列表中选择一个网站:
如何获得最佳网站性能
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
美洲
- AméricaLatina(Español)
- 加拿大(英语)
- 美国(英语)