离散化
将数据分组到箱子或类别中
语法
描述
[___=离散化(___“分类”)
创建一个分类数组,其中每个bin都是一个类别。在大多数情况下,默认类别名称的形式为“[A, B)
(或“[A, B]
),其中一个
而且B
是连续的料仓边。如果你指定大调的
作为字符向量,默认类别名可能具有特殊格式。看到Y
获取显示格式的列表。
[___=离散化(___“分类”,
,对于datetime或duration数组输入,在输出的类别名称中使用指定的datetime或duration显示格式。displayFormat
)
[___=离散化(___“分类”,
中的类别名称categoryNames
)Y
使用字符向量的单元格数组,categoryNames
.的长度categoryNames
必须等于箱子的数量。
例子
将数据分组
使用离散化
将数值分组到离散的箱子中。边缘
定义了5条箱边,所以有4个箱。
数据= [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
Y =离散化(数据,边)
Y =1×10南南1 1 3 2 4 4 2 2
Y
指示数据的每个元素属于哪个bin。因为值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
Group Datetime按月分组数据
用2016年的随机日期创建一个10乘1的日期时间向量。然后,将datetime值按月分组,并将结果作为分类数组返回。
X = datetime(2016,1,randi(365,10,1))
X =10 x1 datetime2016年10月24日-2016年11月26日-2016年2月16日-2016年2月29日-2016年8月18日- 05- 2月-2016年11- 4月-2016年18- 7月-2016年15- 12月-2016年18- 12月
Y =离散化(X,“月”,“分类”)
Y =10 x1分类10 -2016年11 -2016年2 -2016年11 -2016年8 -2016年2 -2016年4 -2016年7 -2016年12 -2016年12 -2016年
更改持续时间值的显示格式
将持续时间值按小时分组,并以各种显示格式返回结果。
将一些随机持续时间值按小时分组,并将结果作为分类数组返回。
X = hours(abs(randn(1,10)))'
X =10 x1持续时间0.53767 hr 1.8339 hr 2.2588 hr 0.86217 hr 0.31877 hr 1.3077 hr 0.43359 hr 0.34262 hr 3.5784 hr 2.7694 hr
Y =离散化(X,“小时”,“分类”)
Y =10 x1分类[0小时,1小时)[1小时,2小时)[2小时,3小时)[0小时,1小时)[0小时,1小时)[0小时,1小时)[1小时,2小时)[0小时,1小时)[0小时,1小时)[0小时,1小时)[3小时,4小时][2小时,3小时)
将结果的显示更改为分钟数。
Y =离散化(X,“小时”,“分类”,“米”)
Y =10 x1分类[0分钟,60分钟)[60分钟,120分钟][120分钟,180分钟)[0分钟,60分钟)[0分钟,60分钟)[60分钟,120分钟)[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)
分配Bin值
使用每个箱子的右边缘作为值
输入。每个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”
输入以指定每个数据仓包含其右数据仓边。第一个bin包含两条边。将结果与左bin边的默认包含进行比较。
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
将数据分组到分类数组中
将数值数据分组到一个分类数组中。使用结果确认在平均值的1个标准偏差范围内的数据量。
将正态分布的数据按照与均值的距离分组,以标准差表示。
X = randn(1000,1);边= std(X)*(-3:3);Y =离散化(X,边,“分类”,...{“3σ”,“2σ”,“σ”,“σ”,“2σ”,“3σ”});
Y
中元素的未定义类别值X
离均值超过3个标准差。
中的值预览Y
.
Y (1:15)
ans =15 x1分类西格玛2西格玛- 3西格玛- 2西格玛-西格玛3西格玛- 2西格玛 西格玛-西格玛
确认大约68%的数据落在平均值的一个标准偏差内。
nnz (Y = =“σ”| Y = =“σ”) /元素个数(Y)
Ans = 0.6910
输入参数
X
- - - - - -输入数组
向量|矩阵|多维数组
输入数组,指定为矢量、矩阵或多维数组。X
包含要分发到容器中的数据。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|datetime
|持续时间
边缘
- - - - - -本边缘
数值向量
Bin边,指定为值递增的数值向量。料仓边可以包含连续的重复元素。中连续元素边缘
形成离散的箱子离散化
用于对数据进行分区X
.默认情况下,每个bin包括左bin边,除了最后一个bin,它包括两个bin边。
边缘
至少要有两个元素,因为边(1)
第一个箱子的左边和边(结束)
是最后一个箱子的右边缘。
例子:Y =离散化([1 3 5],[0 2 4 6])
分配值1
,3.
,5
分成三个有边的箱子(0, 2)
,(2、4)
,(4、6)
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|datetime
|持续时间
N
- - - - - -箱数
标量整数
箱数,指定为标量整数。
离散化
将数据划分为N
相同宽度的箱子,选择箱子边是“漂亮的”数字,重叠的数据范围。中最大和最小的元素X
通常不会落在箱子的边缘。如果数据分布不均匀,那么中间的一些箱子可以是空的。但是,第一个和最后一个bin总是包含至少一段数据。
例子:[Y,E] =离散化(X,5)
将数据分布在X
分成5个均匀宽度的箱子。
大调的
- - - - - -统一的存放时间
标量持续时间
|标量calendarDuration
|“第二”
|“一分钟”
|“小时”
|“天”
|“周”
|“月”
|“季”
|“年”
|“十年”
|“世纪”
统一的bin持续时间,指定为标量持续时间
或calendarDuration
,或作为表中的值之一。
如果你指定大调的
,然后离散化
最多可使用65,536个箱子(或216).如果指定的bin持续时间需要更多的bin,则离散化
使用与最大箱数对应的较大箱宽。
价值 | 适用于…… | 描述 |
---|---|---|
“第二” |
日期时间或持续时间值 |
每个箱子是1秒。 |
“一分钟” |
日期时间或持续时间值 |
每个箱子是1分钟。 |
“小时” |
日期时间或持续时间值 |
每个箱子是1小时。 |
“天” |
日期时间或持续时间值 |
|
“周” |
Datetime值 |
每个箱子是一个日历周。 |
“月” |
Datetime值 |
每个箱子是一个日历月。 |
“季” |
Datetime值 |
每个箱子是一个日历季度。 |
“年” |
日期时间或持续时间值 |
|
“十年” |
Datetime值 |
每个箱子是10年(10个日历年)。 |
“世纪” |
Datetime值 |
每个箱子代表一个世纪(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
- - - - - -日期时间和持续时间显示格式
特征向量
日期时间和持续时间显示格式,指定为字符向量。的displayFormat
中的值不会更改Y
,只有自己的展示。你可以指定displayFormat
为datetime和duration数组使用任何有效的显示格式。有关可用选项的详细信息,请参见设置日期和时间显示格式.
例子:离散化(X,“天”、“分类”,“h”)
指定持续时间数组的显示格式。
例子:离散化(X,“天”、“分类”、“yyyy-MM-dd”)
指定datetime数组的显示格式。
数据类型:字符
categoryNames
- - - - - -类别数组类别名称
字符向量的单元格数组
类别数组类别名称,指定为字符向量的单元格数组。categoryNames
长度必须等于箱子的数量。
例子:Y =离散化(randi(5 10 1), 1.5[1 3 5],“分类”,{' A ' ' B ' ' C '})
将数据分成三类,一个
,B
,C
.
数据类型:细胞
一边
- - - - - -要包含在每个箱子中的边
“左”
(默认)|“对”
要包含在每个bin中的边,指定为以下值之一:
“左”
-所有的bin都包括左bin边,除了最后一个bin,它包括两边边。这是默认值。“对”
-所有的箱子都包括右箱子边,除了第一个箱子,它包括两个边。
例子:Y =离散化(randi(11,10,1),1:2:11,' includedge ','right')
包括每个箱子中的右箱子边。
输出参数
Y
——垃圾箱
向量|矩阵|多维数组|序数分类数组
箱子,作为数字矢量、矩阵、多维数组或有序分类数组返回。Y
尺寸和X
,每个元素描述了中相应元素的bin位置X
.如果值
的数据类型,则Y
和值
.根据输出的数据类型,超出范围的元素的表达方式不同:
对于数值输出,
Y
包含南
中的超出范围元素的值X
(X(i) < edges(1)
或X(i) >条边(end)
),或在X
包含一个南
.如果
Y
是分类数组,则它包含超出范围的未定义元素或南
输入。如果
值
向量是整数数据类型吗Y
包含0
超出范围或南
输入。
默认类别名称格式为Y
对于语法离散化(X,大调的“直言”)
是:
的价值大调的 |
默认类别名称格式 | 格式示例 |
---|---|---|
“第二” |
全局默认格式 |
|
“一分钟” |
||
“小时” |
||
“天” |
全局默认日期格式 |
|
“周” |
|
|
“月” |
|
|
“季” |
|
|
“年” |
|
|
“十年” |
|
|
“世纪” |
E
-箱边
向量
Bin边,作为向量返回。指定此输出以查看离散化
在没有显式传递bin边的情况下计算。
E
作为行向量返回离散化
计算箱子边。如果传入bin边,那么E
控件的方向边缘
输入。
提示
的行为
离散化
是类似的histcounts
函数。使用histcounts
求每个箱子中元素的数量。另一方面,使用离散化
找出每个元素属于哪个bin(不计算)。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。金宝app有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
版本历史
在R2015a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。