文档

离散化

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

语法

Y =离散化(X,边缘)
[Y, E] =离散化(X, N)
(Y, E) =离散化(X,大调的)
___) =离散化(___、价值观)
___) =离散化(___“分类”)
___) =离散化(___、“直言”displayFormat)
___) =离散化(___、“直言”categoryNames)
___) =离散化(___、“IncludedEdge”,一边)

描述

例子

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

例子

YE) =离散化(XN的范围XN统一箱,并返回箱边E

例子

YE) =离散化(X大调的,在那里X是datetime或duration数组,除X放进统一的箱子里大调的的时间长度。大调的可以是标量持续时间calendarDuration,或时间单位。例如,[Y, E] =离散化(X,“小时”)X放入垃圾箱,持续时间一致为1小时。

例子

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

例子

___) =离散化(___“分类”)创建一个分类数组,其中每个bin都是一个类别。在大多数情况下,默认的类别名称为[A, B)”(或“[A, B]),在哪里一个B是连续的箱边。如果您指定大调的作为一个字符向量,那么默认的类别名可能有特殊的格式。看到Y以获取显示格式的列表。

例子

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

例子

___) =离散化(___“分类”,categoryNames中的类别名称Y使用字符向量的单元数组,categoryNames.的长度categoryNames必须等于容器的数量。

例子

___) =离散化(___“IncludedEdge”,一边,在那里一边“左”“对”,指定每个bin是否包括其右侧或左侧bin边缘。例如,如果一边“对”,则每个仓都包括右仓边,除了第一个包含两条边的Bin。在这种情况下j该bin包含一个元素X(我)如果边(j) < X(i) <=边(j+1),在那里1 < j <= NN是箱子的数量。第一个容器包含它所包含的左边缘边(1)<= X(i) <=边(2).的默认值一边“左”

例子

全部折叠

使用离散化将数值分组到离散的箱子中。边缘定义了五个箱子边,所以有四个箱子。

数据= [1 1 2 3 6 5 8 10 4 4]
data =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指示每个数据元素属于哪个bin。由于价值1落在垃圾桶的范围之外,Y包含这些元素的值。

将随机数据分成三个箱子。指定第二个输出以返回所计算的bin边缘离散化

1 X = randn(15日);[Y, E] =离散化(X, 3)
Y =15×12 2 1 2 2 1 1 2 3 2⋮
E =1×43 3 6

创建一个10乘1的datetime矢量,其中包含2016年的随机日期。然后,将datetime值按月分组,并将结果作为分类数组返回。

X = datetime(2016 1,兰迪(365、10、1))
X =10 x1 datetime数组2016年10月24日,2016年11月26日,2016年2月16日,2016年11月29日,2016年8月18日,2016年2月05日,2016年4月11日,2016年7月18日,2016年12月15日,2016年12月18日
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分类数组[1小时,1小时,2小时)[2小时,3小时)[0小时,1小时)[1小时,1小时)[1小时,2小时)[0小时,1小时)[0小时,1小时)[0小时,1小时)[0小时,1小时)[3小时,4小时][2小时,3小时)[2小时,3小时)

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

Y =离散化(X,“小时”“分类”“米”
Y =10 x1分类数组[0分钟,60分钟)[60分钟,120分钟)[120分钟,180分钟)[0分钟,60分钟)[0分钟,60分钟)[0分钟,60分钟)[0分钟,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)

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

X =兰迪(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;边= [1 3 4 7 10 11];Y =离散化(X,边缘,“IncludedEdge”“对”
Y =1×61 1 3 3 4 5
Z =离散化(X,边缘)
Z =1×61 2 3 4 4 5

将数字数据分组到分类数组中。使用结果来确认落在平均值一个标准差以内的数据量。

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

X = randn (1000 1);边缘=性病(X) *(三3);Y =离散化(X,边缘,“分类”...“3σ”“2σ”“σ”“σ”“2σ”“3σ”});

Y中元素的未定义分类值X离均值3个标准差远。

中的值预览Y

Y (1:15)
ans =15 x1分类数组Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma Sigma

确认大约68%的数据符合平均值的一个标准偏差。

nnz (Y = =“σ”| Y = =“σ”) /元素个数(Y)
ans = 0.6910

输入参数

全部折叠

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|datetime|持续时间

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|逻辑|datetime|持续时间

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

例子:[Y, E] =离散化(X, 5)X分成5个等宽的箱子。

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

如果您指定大调的,然后离散化最多可以使用65,536个箱子(或2个16).如果指定的bin持续时间需要更多的bin,那么离散化使用与最大容器数相对应的较大容器宽度。

价值 适用于…… 描述
“第二”

日期时间或持续时间值

每个箱子是1秒。

“一分钟”

日期时间或持续时间值

每个箱子是1分钟。

“小时”

日期时间或持续时间值

每个箱子是1小时。

“天”

日期时间或持续时间值

  • 对于datetime输入,每个bin是1个日历日。该值说明了日光节约时间的变化。

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

“周”

Datetime值

每个箱子是一个日历周。
“月”

Datetime值

每个bin是1个日历月。
“季”

Datetime值

每个箱子是一个日历季度。
“年”

日期时间或持续时间值

  • 对于datetime输入,每个bin是1个日历年。该值表示闰日。

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

“十年”

Datetime值

每个垃圾箱是10年(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的索引。

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

例子:离散化(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’,‘正确的’)包括每个仓的右仓边。

输出参数

全部折叠

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

  • 数字输出,Y包含中超出范围的元素的值X(X(我)<边缘(1)X(我)>边缘(结束)),或X包含一个

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

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

中的默认类别名称格式Y的语法离散化(X,大调的“直言”)是:

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

全局缺省格式

28 - 1月- 2016 10:32:06

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

全局默认日期格式

28日- 1月- 2016

“周”

[global_default_date_format, global_default_date_format)

[24 - 1月- 2016年1月30 - - 2016)

“月”

“MMM-uuuu”

2016年6月,

“季”

“回调哦哦”

2015年第四季度

“年”

“哦哦”

2016

“十年”

”(哦哦哦哦)

(2010, 2020)

“世纪”

Bin边,作为一个向量返回。指定这个输出来查看bin边缘离散化计算在没有显式传入箱边的情况下。

提示

  • 的行为离散化类似于histcounts函数。使用histcounts查找每个容器中的元素数。另一方面,使用离散化查找每个元素属于哪个bin(不计算)。

扩展功能

介绍了R2015a

这个话题有用吗?