histcounts2
二元直方图 bin 计数
语法
说明
示例
将 100 个随机数对组分布到多个 bin 内。histcounts2
自动选择合适的 bin 宽度以显示数据的基本分布。
x = randn(100,1); y = randn(100,1); [N,Xedges,Yedges] = histcounts2(x,y)
N = 7×6
0 0 0 2 0 0
1 2 10 4 0 0
1 4 9 9 5 0
1 4 10 11 5 1
1 4 6 3 1 1
0 0 1 2 0 0
0 0 1 0 1 0
Xedges = 1×8
-3 -2 -1 0 1 2 3 4
Yedges = 1×7
-3 -2 -1 0 1 2 3
将 10 个数字对组分布到 12 个 bin 中。在 x 维度指定 3 个 bin,在 y 维度指定 4 个 bin。
x = [1 1 2 3 2 2 1 1 2 3]; y = [5 6 3 8 9 1 2 7 5 1]; nbins = [3 4]; [N,Xedges,Yedges] = histcounts2(x,y,nbins)
N = 3×4
1 0 2 1
1 1 1 1
1 0 0 1
Xedges = 1×4
0.6000 1.4000 2.2000 3.0000
Yedges = 1×5
0 2.3000 4.6000 6.9000 9.2000
将 1,000 个随机数对组分布到多个 bin 内。使用两个向量(分别针对 x 和 y 维度)定义 bin 边界。每个向量中的第一个元素指定第一个 bin 的第一个边界,最后一个元素指定最后一个 bin 的最后一个边界。
x = randn(1000,1); y = randn(1000,1); Xedges = -5:5; Yedges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5]; N = histcounts2(x,y,Xedges,Yedges)
N = 10×10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 5 5 3 5 1 2 0 0
0 2 19 23 29 25 26 20 5 0
0 10 36 51 59 71 54 46 10 0
0 7 43 46 79 64 60 46 9 0
0 3 12 18 21 23 19 9 6 0
0 0 5 3 2 8 2 2 0 0
0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
将 1,000 个随机数对组分布到多个 bin 内。将 Normalization
指定为 'probability'
以对 bin 计数进行归一化处理,从而 sum(N(:))
为 1
。即,每个 bin 计数代表观测值属于该 bin 的可能性。
x = randn(1000,1); y = randn(1000,1); [N,Xedges,Yedges] = histcounts2(x,y,6,'Normalization','probability')
N = 6×6
0 0 0.0020 0.0020 0 0
0 0.0110 0.0320 0.0260 0.0070 0.0010
0.0010 0.0260 0.1410 0.1750 0.0430 0.0060
0 0.0360 0.1620 0.1940 0.0370 0.0040
0 0.0040 0.0300 0.0370 0.0100 0.0010
0 0.0030 0.0040 0.0040 0.0010 0
Xedges = 1×7
-4.0000 -2.7000 -1.4000 -0.1000 1.2000 2.5000 3.8000
Yedges = 1×7
-4.0000 -2.7000 -1.4000 -0.1000 1.2000 2.5000 3.8000
将介于 -10 和 10 之间的 1000 个随机整数对组分布到多个 bin 内,并将 BinMethod
指定为 'integers'
以使用以整数为中心的单位宽度 bin。指定 histcounts2
的五个输出以返回表示数据 bin 位置的向量。
x = randi([-10,10],1000,1); y = randi([-10,10],1000,1); [N,Xedges,Yedges,binX,binY] = histcounts2(x,y,'BinMethod','integers');
确定值 (x(3),y(3))
属于哪个 bin。
[x(3),y(3)]
ans = 1×2
-8 10
bin = [binX(3) binY(3)]
bin = 1×2
3 21
输入参数
要分布到各 bin 的数据,指定为向量、矩阵或多维数组的单独参量。X
和 Y
的大小必须相同。
X
和 Y
中的对应元素指定二维数据点 [X(k),Y(k)]
的 x 和 y 坐标。X
和 Y
的数据类型可以不同。
histcounts2
忽略所有的 NaN
值。同样,histcounts2
忽略 Inf
和 -Inf
值,除非 bin 边界将 Inf
或 -Inf
显式指定为 bin 边界。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
每个维度中的 bin 数量,指定为一个正整数标量或由正整数组成的二元素向量。
如果
nbins
是标量,则histcounts2
在每个维度中使用该标量所指定的 bin 数。如果
nbins
是向量,则第一个元素给出 x 维度中的 bin 数,第二个元素给出 y 维度中的 bin 数。
如果不指定 nbins
,则 histcounts2
自动基于 X
和 Y
中的值计算要使用多少个 bin。
如果用 BinMethod
或 BinWidth
指定 nbins
,则 histcounts2
仅采用最后一个参数。
示例: [N,Xedges,Yedges] =
在 histcounts2
(X,Y,15)x
维度和 y
维度使用 15 个 bin。
示例: [N,Xedges,Yedges] =
在 histcounts2
(X,Y,[15 20])x
维度使用 15 个 bin,在 y
维度使用 20 个 bin。
x 维度中的 bin 边界,指定为向量。第一个元素指定 x 维度中第一个 bin 的左边界。最后一个元素指定 x 维度中的最后一个 bin 的右边界。仅最后一个 bin 包含右边界。
如果用
BinMethod
、BinWidth
或NumBins
指定Xedges
和Yedges
,histcounts2
只采用 bin 边界且 bin 边界必须最后指定。如果用
XBinLimits
指定Xedges
,则histcounts2
仅采用Xedges
且Xedges
必须最后指定。
y 维度中的 bin 边界,指定为向量。第一个元素指定 y 维度中第一个 bin 的左边界。最后一个元素指定 y 维度中的最后一个 bin 的右边界。仅最后一个 bin 包含右边界。
如果用
BinMethod
、BinWidth
或NumBins
指定Yedges
和Xedges
,histcounts2
只采用 bin 边界且 bin 边界必须最后指定。如果用
YBinLimits
指定Yedges
,则histcounts2
仅采用Yedges
且Yedges
必须最后指定。
名称-值参数
以 Name1=Value1,...,NameN=ValueN
的形式指定可选参量对组,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: [N,Xedges,Yedges] = histcounts2(X,Y,'Normalization','probability')
对 N
中的 bin 计数进行归一化,这样 sum(N)
为 1。
每个维度中的 bin 宽度,指定为由正值组成的二元素向量。第一个元素为 x 维度中的 bin 宽度,第二个元素为 y 维度中的 bin 宽度。
如果指定 BinWidth
,则 histcounts2
可以沿每个维度使用最多 1024 (210) 个 bin。如果指定的 bin 宽度需要多个 bin,则 histcounts2
使用与最大 bin 数量对应的较大的 bin 宽度。
如果用 BinMethod
或 NumBins
指定 BinWidth
,则 histcounts2
仅采用最后一个参数。
示例:
在 histcounts2
(X,Y,'BinWidth',[5 10])x
维度使用的 bin 的大小为 5
,在 y
维度使用的 bin 的大小为 10。
x 维度的 bin 范围,指定为二元素向量 [xbmin,xbmax]
。第一个元素指示 x 维度中的第一个 bin 边界。第二个元素指示 x 维度中的最后一个 bin 边界。
此选项只对在 bin 范围 X>=xbmin & X<=xbmax
(包含这两个边界值)内的数据分 bin。
y 维度的 bin 范围,指定为二元素向量 [ybmin,ybmax]
。第一个元素指示 y 维度中的第一个 bin 边界。第二个元素指示 y 维度中的最后一个 bin 边界。
此选项只对在 bin 范围 Y>=ybmin & Y<=ybmax
(包含这两个边界值)内的数据分 bin。
分 bin 算法,指定为此表中的一个值。
值 | 描述 |
---|---|
'auto' | 默认的 |
'scott' | 如果数据接近联合正态分布,则斯科特规则最佳。该规则也适用于大多数的其他分布。它使用 bin 大小 |
'fd' | 弗里德曼-迪亚科尼斯规则对数据中的离群值不太敏感,可能更适用于重尾分布的数据。它使用的 bin 大小为 |
'integers' | 整数规则对整数数据有用,因为它创建以整数为中心的 bin。它对每个维度使用 bin 宽度 1 并将 bin 边界放在整数的中间。 为避免无意间创建太多 bin,可以使用此规则创建 1024 (210) 个 bin 的限制。如果任一维度的数据范围大于 1024,则整数规则改用更宽的 bin。 |
histcounts2
稍微调整 bin 的数目,使 bin 边界落在“合适”的数字上,而不是机械遵循这些精确的公式。如果设置
NumBins
、XBinEdges
、YBinEdges
、BinWidth
、XBinLimits
或YBinLimits
属性,则BinMethod
设置为'manual'
。如果用
BinWidth
或NumBins
指定BinMethod
,则histcounts2
仅采用最后一个参数。
示例:
以整数为中心放置二维 bin。histcounts2
(X,Y,'BinMethod','integers')
归一化类型,指定为此表中的一个值。对于每个 bin i
:
是 bin 的值。
是 bin 中的元素数目。
是 bin 的面积,使用 bin 宽度 x 和 y 计算得出。
是输入数据中的元素数目。此值可以大于分 bin 数据元素数,前提是数据中包含缺失值,或者某些数据位于 bin 范围外。
值 | bin 值 | 注释 |
---|---|---|
'count' (默认值) |
|
|
'probability' |
|
|
'percentage' |
|
|
'countdensity' |
|
|
'cumcount' |
|
|
'pdf' |
|
|
'cdf' |
|
|
示例:
使用概率密度函数估计值对数据进行分 bin。histcounts2
(X,Y,'Normalization','pdf')
输出参量
bin 计数,以数组形式返回。
分 bin 方案包括每个 bin 的 x 维和 y 维的左边界,以及最后一个 bin 的 x 维和 y 维的右边界。
例如,bin (1,1)
包括位于每个维度中第一个边界上的值,右下角的最后一个 bin 包括位于其任何边界上的值。
x 维度的 bin 边界,以向量形式返回。第一个元素是 x 维度中第一个 bin 的左边界。最后一个元素是 x 维度中最后一个 bin 的右边界。
y 维度的 bin 边界,以向量形式返回。第一个元素是 y 维度中第一个 bin 的左边界。最后一个元素是 y 维度中最后一个 bin 的右边界。
x 维度中的 bin 索引,以数组形式返回,数组大小与 X
相同。binX
和 binY
中的对应元素说明哪个编号的 bin 包含 X
和 Y
中的对应值。binX
和 binY
中的 0
值表示元素不属于任何 bin(例如 NaN
值)。
例如,binX(1)
和 binY(1)
描述值 [X(1),Y(1)]
的 bin 位置。
y 维度中的 bin 索引,以数组形式返回,数组大小与 Y
相同。binX
和 binY
中的对应元素说明哪个编号的 bin 包含 X
和 Y
中的对应值。binX
和 binY
中的 0
值表示元素不属于任何 bin(例如 NaN
值)。
例如,binX(1)
和 binY(1)
描述值 [X(1),Y(1)]
的 bin 位置。
扩展功能
用法说明和限制:
代码生成不支持对此函数使用稀疏矩阵输入。
如果您不提供 bin 边界,代码生成可能需要可变大小数组和动态内存分配。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2015b 中推出通过将 Normalization
名称-值参量指定为 'percentage'
,可以将直方图值归一化为百分比。
另请参阅
histogram
| histcounts
| discretize
| histogram2
| morebins
| fewerbins
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)