主要内容

离散化

将数据分组到箱子或类别中

描述

例子

Y=离散化(X边缘返回包含的元素的容器的索引X.的jth bin包含元素X(我)如果边(j) <= X(i) <边(j+1)1 <= j < N,在那里N是箱的数量和长度(边缘)= N + 1.最后一个箱子包含这两条边(N) <= X(i) <= N+1)

例子

YE) =离散化(XN划分数据X进入N等宽的箱,并返回箱边E

例子

YE) =离散化(Xd,在那里Xdatetime或duration数组是否分X成套箱d的时间长度。d可以是标量持续时间或者calendarDuration或者一个单位的时间。例如,[Y, E] =离散化(X,“小时”)X进入箱子,均匀持续1小时。

例子

___) =离散化(___返回相应的元素而不是bin编号,使用任何以前的输入或输出参数组合。例如,如果X (1)是在5号仓里吗Y(1)价值观(5)而不是5必须是一个长度等于容器数的向量。

例子

___) =离散化(___“分类”)创建一个类别数组,其中每个容器都是一个类别。在大多数情况下,默认的类别名称的形式是“[A,B)“ (或者 ”[A,B]”最后一个箱子)一个B是连续的箱边。如果您指定d作为字符向量,默认类别名称可能具有特殊格式。看Y查看显示格式的列表。

例子

___) =离散化(___“分类”,displayFormat,对于datetime或duration数组输入,在输出的类别名称中使用指定的datetime或duration显示格式。

例子

___) =离散化(___“分类”,categoryNames也命名的类别Y使用字符向量的单元格数组,categoryNames.长度categoryNames必须等于箱子的数量。

例子

___) =离散化(___“IncludedEdge”,,在那里'剩下'或者“对”,指定每个垃圾箱是否包括其右或左边的宾埃边缘。例如,如果“对”然后,每个垃圾箱都包括右边的箱边缘,除了第一个包含两条边的箱子。在这种情况下j这个箱子包含一个元素X(我)如果边(j),在那里1 N是垃圾箱的数量。第一个垃圾箱包括左边缘,使其包含边(1)<= X(i) <=边(2).默认为'剩下'

例子

全部折叠

离散化将数值分组到离散的容器中。边缘定义了5个箱子边,所以有4个箱子。

数据= [1 1 2 3 6 5 8 10 4 4]
数据=1×101 1 2 3 6 5 8 10 4 4
边缘= 2:2:10
边缘=1×52 4 6 8 10
Y =离散化(数据、边缘)
y =1×10南楠1 1 3 2 4 4 2 2

Y指示每个数据元素所属的箱子。自价值以来1落在垃圾箱的范围之外,Y包含这些元素的值。

将随机数据分组到三个箱子里。指定第二个输出以返回计算得到的仓边离散化

x = randn(10,1);[y,e] =离散化(x,3)
y =10×12 2 1 2 2 1 1 2 3 2
E =1×4.-3 0 3 6

创建一个10乘1的日期时间向量,其中包含2016年的随机日期。然后,按月对datetime值进行分组,并以分类数组的形式返回结果。

X = datetime(2016 1,兰迪(365、10、1))
X =10 x1 datetime24- 10 -2016 26- 11- 2016 16- 2 -2016 29- 11- 2016 18- 8- 2016 05- 2 -2016 11- 4- 2016 18- 7 -2016 15- 12 -2016 18- 12 -2016
y =离散化(x,“月”“分类”
y =10 x1分类2016年10 -2016年11 -2016年2 -2016年11 -2016年8 -2016年2 -2016年4 -2016年7 -2016年12 -2016年12月

将持续时间值按小时分组,并以各种显示格式返回结果。

按小时对一些随机持续时间值进行分组,并将结果作为分类数组返回。

X =小时(abs (randn(10)))”
X =10 x1持续时间0.53767小时1.8339小时2.2588小时0.86217小时0.31877小时1.3077小时0.43359小时0.34262小时3.5784小时2.7694小时
y =离散化(x,'小时'“分类”
y =10 x1分类[0 HR,1小时)[1小时,2小时)[2小时,3小时)[0小时,1小时)[0小时,1小时)[1小时,2小时)[0小时,1小时)[0 HR,1小时)[3小时,4小时] [2小时,3小时)

将结果的显示更改为分钟数。

y =离散化(x,'小时'“分类”“米”
y =10 x1分类[0分钟,60分钟)[60分钟,120分钟)[120分钟,180分钟)[0分钟,60分钟)[0 min,60分钟)[60分钟,120分钟)[0 min,60分钟)[0分钟,60分钟)[180分钟,240分钟] [120分钟,180分钟)

再次更改格式以显示为几小时,分钟和秒数。

y =离散化(x,'小时'“分类”“hh: mm: ss”
y =10 x1分类(就是01:00:00)[01:00:00 02:00:00)[02:00:00 03:00:00)[就是01:00:00)[就是01:00:00)[01:00:00 02:00:00)[就是01:00:00)[就是01:00:00)[03:00:00 04:00:00][02:00:00 03:00:00)

使用每个容器的右边缘作为输入。每个bin中的元素值总是小于bin值。

x = randi(100,1,10);边缘= 0:25:100;值=边缘(2:结束);y =离散化(x,边,值)
y =1×10100 100 25 100 75 25 50 75 100 100

使用“IncludedEdge”输入要指定每个垃圾箱都包含其右键边缘。第一个垃圾箱包括两个边缘。将结果与左箱边缘的默认包含结果进行比较。

X = 1:2:11;Edges = [1 3 4 7 10 11];y =离散化(x,边,“IncludedEdge”“对”
y =1×6.1 1 3 3 4 5
Z =离散化(X,边缘)
z =1×6.1 2 3 4 4 5

将数字数据分组到分类数组中。使用这个结果来确认与平均值相差1个标准差的数据量。

根据与均值的距离,用标准差来衡量,将正态分布的数据分组到箱子中。

X = RANDN(1000,1);边缘= std(x)*( -  3:3);y =离散化(x,边,“分类”......'-3sigma''-2sigma'“σ”“σ”“2σ”'3sigma'});

Y包含元素的未定义分类值X这比平均值更远3个标准偏差。

预览Y

Y (1:15)
ans =15 x1分类西格玛2西格玛-3西格玛-2西格玛-西格玛<未定义> 3西格玛-2西格玛<未定义>西格玛-西格玛

确认大约68%的数据均在平均值的一个标准偏差范围内。

nnz (Y = =“σ”| Y = =“σ”)/ numel(y)
ans = 0.6910.

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。X包含要分发到垃圾箱中的数据。

数据类型:单身的||INT8.|int16|int32|int64|uint8|uint16|UINT32.|UINT64|逻辑|约会时间|持续时间

Bin边,指定为一个数值递增的向量。箱子边可以包含连续的重复元素。连续的元素边缘形成离散的箱子离散化用于将数据分区X.默认情况下,每个箱子包括左边的箱子边,除了最后一个箱子,它包括两个箱子边。

边缘必须至少有两个元素,以来边缘(1)是第一个垃圾箱的左边缘边缘(结束)是最后一个箱子的右边。

例子:Y =离散化([1 3 5],[0 2 4 6])分发值13., 和5分成三个有边的箱子(0, 2)(2、4), 和(4、6)

数据类型:单身的||INT8.|int16|int32|int64|uint8|uint16|UINT32.|UINT64|逻辑|约会时间|持续时间

容器的数量,指定为标量整数。

离散化将数据分为N宽度一致的箱子,选择箱子的边是重叠数据范围的“好”数字。中最大和最小的元素X通常不会落在箱边缘。如果数据不均匀分布,则一些中间箱可以为空。但是,第一和最后一个箱总是包括至少一条数据。

例子:[Y,E] =离散化(X,5)分发数据X放入5个宽度相同的箱子。

统一的箱持续时间,指定为标量持续时间或者calendarDuration,或作为表中的值之一。

如果您指定d,然后离散化可以使用最多65,536个垃圾桶(或216.)。如果指定的垃圾箱持续时间需要更多的垃圾箱,那么离散化使用与最大箱数相对应的较大箱宽。

价值 适合...... 描述
“第二”

日期时间或持续时间值

每个箱子是1秒。

“一分钟”

日期时间或持续时间值

每个垃圾桶为1分钟。

'小时'

日期时间或持续时间值

每个垃圾桶是1小时。

“天”

日期时间或持续时间值

  • 对于datetime输入,每个容器是1个日历天。这个值说明了夏令时转换。

  • 对于持续时间输入,每个仓是1个固定长度的天(24小时)。

“周”

Datetime值

每个垃圾桶是一个日历周。
“月”

Datetime值

每个垃圾箱都是1个日历月。
'四分之一'

Datetime值

每个箱子是1个日历季度。
'年'

日期时间或持续时间值

  • 对于datetime输入,每个容器是1个日历年。该值用于闰日。

  • 对于持续时间输入,每个仓是1个固定长度的年(365.2425天)。

“十年”

Datetime值

每个垃圾桶是1个十年(10个日历年)。
“世纪”

Datetime值

每个垃圾箱都是1世纪(100个日历年)。

例子:[Y, E] =离散化(X,“小时”)X进入箱子,均匀持续1小时。

数据类型:字符|持续时间|calendarDuration

bin值,指定为任何数据类型的向量。必须和箱子的长度相同,长度(边缘)1.元素在输出中替换正常的bin索引。也就是说,如果X (1)属于本2,然后离散化返回Y(1)作为价值观(2)而不是2

如果是单元格数组,则所有输入数据必须属于一个bin。

例子:Y =离散化(randi(5,10,1),[1 1.5 3 5],diff([1 1.5 3 5]))返回容器的宽度,而不是1到3之间的索引。

DateTime和持续时间显示格式,指定为字符向量。的displayFormat值不改变中的值Y,只有他们的展示。您可以指定displayFormat对datetime和duration数组使用任何有效的显示格式。有关可用选项的更多信息,请参见设置日期和时间显示格式

例子:离散化(X,“天”、“分类”,“h”)指定持续时间数组的显示格式。

例子:离散化(X,“天”、“分类”、“yyyy-MM-dd”)指定datetime数组的显示格式。

数据类型:字符

类别数组类别名称,指定为字符向量的单元格数组。categoryNames长度必须等于容器的数量。

例子:Y =离散化(randi(5 10 1), 1.5[1 3 5],“分类”,{' A ' ' B ' ' C '})将数据分配为三类,一个B, 和C

数据类型:细胞

在每个BIN中包含的边,指定为以下值之一:

  • '剩下'-所有箱子包括左边的箱子边,除了最后一个箱子,它包括了两边的边。这是默认值。

  • “对”-所有的箱子包括右边的箱子边,除了第一个箱子,它包括两条边。

例子:Y =离散化(randi(11 10 1), 1:2:11,‘IncludedEdge’,‘正确的’)包括每个容器的右容器边。

输出参数

全部折叠

Bins,以数字向量、矩阵、多维数组或有序分类数组的形式返回。Y大小是一样的吗X,每个元素描述中对应元素的bin位置X.如果,则数据类型为Y是相同的.根据输出的数据类型不同地表达超出范围的元素:

  • 对于数字输出,Y包含超出范围元素的值X(X(我)<边缘(1)或者x(i)>边缘(结束)或者在哪里X包含A.

  • 如果Y是一个分类数组,那么它包含超出范围的未定义元素还是输入。

  • 如果是一个整数数据类型的向量吗Y包含0超出范围或输入。

默认类别名称格式为Y对于语法离散化(x,dur,'分类')是:

的价值d 默认类别名称格式 格式示例
“第二”

全局默认格式

2016年1月28日 - 2016 10:32:06

“一分钟”
'小时'
“天”

全局默认日期格式

28日- 1月- 2016

“周”

[global_default_date_format, global_default_date_format)

[2016年24月24日,2016年1月30日)

“月”

“MMM-uuuu”

2016年6月

'四分之一'

“回调哦哦”

2015年第四季度

'年'

'uuuu'

2016

“十年”

'[Uuuu,Uuuu)'

[2010年,2020年)

“世纪”

Bin边,作为向量返回。指定此输出以查看该容器的边离散化计算在您没有显式传递箱边的情况下。

E以行向量的形式返回离散化计算箱边。如果你传入bin边,那么E保留的方向边缘输入。

提示

  • 的行为离散化是类似的节目功能。用节目找到每个垃圾箱中的元素数。另一方面,使用离散化要找到每个元素所属的bin(不计数)。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2015A介绍