明确的

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

描述

明确的是一种数据类型,它将值分配给一组有限的离散类别,例如地中海,低的这个se categories can have a mathematical ordering that you specify, such as高> Med >低,但这不是必需的。分类数组提供了对非数字数据的有效存储和方便操作,同时还为值维护有意义的名称。分类数组的一个常见用途是指定表中的行组。

创建

描述

例子

B=分类的(一个从数组创建分类数组一个这个类别ofB排序的值是唯一的吗一个

例子

B=分类的(一个valueset中的每个值创建一个类别valueset这个类别ofB与的值的顺序相同吗valueset

您可以使用valueset中不存在的值的类别一个.相反,如果一个中不存在的任何值valueset,然后对应的元素B是未定义的。

例子

B=分类的(一个valuesetcatnames命名的类别B通过匹配的类别值valueset名字在catnames

例子

B=分类的(一个___名称,值创建包含由一个或多个指定的附加选项的分类数组名称,值对参数。您可以在前面的语法中包含任何输入参数。

例如,要指示类别具有数学顺序,请指定“序数”,对

输入参数

全部展开

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

明确的从字符串或字符向量的输入值中删除前导和尾随空格。

如果一个包含缺少的值,然后对应的元素B是未定义的,显示为<定义>这个明确的函数将以下值转换为未定义的类别值:

  • 在数字和持续时间数组中

  • 缺少的字符串()或空字符串("")在字符串数组中

  • 空字符向量('')字符向量的单元内数组

  • NaTdatetime数组

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

B没有未定义值的类别。若要为缺失或未定义的值创建显式类别,必须包含所需类别名称catnames,并将缺少的值作为中的对应值valueset

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

  • 独特的

  • 情商

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

明确的的元素中删除前导和尾随空格valueset它们是字符串或字符向量。

类别名称,指定为字符向量的单元格数组或字符串数组。如果未指定catnames输入参数,然后明确的使用valueset作为类别名称。

中合并多个不同的值一个进入一个单一的范畴B,包括与这些值对应的重复名称。

名称-值对的观点

指定可选的逗号分隔的对名称,值论据。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值

例子:“序数”,对指定类别具有数学顺序。

序数变量指示器,指定为逗号分隔对组成“顺序”或者0)或真正的1).

0

明确的创建非序号的分类数组,这是默认行为。

的类别B没有数学顺序。因此,您可以在B仅供平等。不能使用任何其他关系操作符比较这些值。

真正的1

明确的创建有序分类数组。

的类别B有一个数学排序,这样第一个类别是最小的,最后一个类别是最大的。你可以比较B使用关系操作符,例如小于和大于,来比较相等的值。你也可以用the最小值马克斯用于顺序分类数组的函数。

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

受保护类别指示器,指定为逗号分隔对,由“保护”或者0)或真正的1).序数类别数组的类别总是受保护的。默认值为真正的当你指定“序数”,对。否则,该值为

0

赋新值时B,类别会自动更新。因此,您可以组合具有不同类别的(非序数)类别数组。类别可以相应地更新,以包含两个数组中的类别。

真正的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”};

转换车站到分类数组。

站=分类(站)
站=5x1分类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这个n use logical indexing to select the table rows that have data from stationS2

(T.Stations == . .“S2”);T (TF,:)
ans=2×3表临时工日期站  _____ ______________ ________ 72{‘2017-04-18’}S2 76{‘2017-04-27’}S2

转换字符向量的单元格数组一个到分类数组。指定一个类别列表,其中包括不在列表中的值一个

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

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

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

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

显示的类别B

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

创建一个数字数组。

A = [1 3 2;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只有使用相等运算符,==~=

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

f = (b ==“红色”);B(工作队)
ans =3x1分类红红红

创建一个5乘2的数字数组。

A = [3 2;3 3;3 2;2 1;3 2]
一个=5×23 2 3 3 2 2 1 3 2

转换一个为有序分类数组,其中12,3.代表类别孩子成人,高级分别。

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

自从B是序数,是指B有一个数学顺序,儿童<成人>老年人

从R2017a开始,您可以使用双引号创建字符串数组。此外,字符串数组可以包含缺失的值,显示为,没有引号。

str = [“平面”“喷气机”“平面”“直升飞机”失踪,“喷气机”
str =1 x6字符串"plane" "jet" "plane" "helicopter"  "jet"

转换字符串数组str到分类数组。的明确的函数将缺少的字符串转换为未定义的分类值,显示为<定义>

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

使用离散化函数(而不是明确的)将100个随机数分为三类。

x=兰德(100,1);y=离散化(x,[0.25.751],“绝对的”, {“小”“媒介”“大的”});总结(y)
小的22中46大的32

提示

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

  • 如果输入数组的数值、日期时间或持续时间值过于接近,则明确的函数截断它们以复制值。例如,分类(1.00001 [1])截断输入数组的第二个元素。要从数字数据创建类别,请使用离散化函数。

选择

您还可以使用将数字数据分组到类别中离散化

扩展功能

介绍了R2013b