一、语法
[N,edges] = histcounts(X)
[N,edges] = histcounts(X,nbins)
[N,edges] = histcounts(X,edges)
解释:
1.1 [N,edges] = histcounts(X)
将 X 的值划分为多个 bin,并返回每个 bin 中的计数以及 bin 边界。histcounts 函数使用自动分 bin 算法,返回均匀宽度的 bin,这些 bin 可涵盖 X 中的元素范围并显示基本分布的形状。
1.2 [N,edges] = histcounts(X,nbins)
使用标量 nbins 指定的 bin 数量。
1.3 [N,edges] = histcounts(X,edges)
将 X 划分为由向量 edges 来指定 bin 边界的 bin。如果 edges(k) ≤ X(i) < edges(k+1),值 X(i) 位于第 k 个 bin 中。最后一个 bin 也包含 bin 的右边界,这样如果 edges(end-1) ≤ X(i) ≤ edges(end),它包含 X(i)。
二、示例
2.1 bin 计数和 bin 边界
将 100 个随机值分布到多个 bin 内。histcounts
自动选择合适的 bin 宽度以显示数据的基本分布。
X = randn(100,1);
[N,edges] = histcounts(X)
2.2 指定 bin 数
将 10 个随机数分布到 6 个等间距 bin 内。
X = [2 3 5 7 11 13 17 19 23 29];
[N,edges] = histcounts(X,6)
2.3 指定 bin 边界
将 1,000 个随机数分布到多个 bin 内。通过向量定义 bin 边界,其中第一个元素是第一个 bin 的左边界,而最后一个元素是最后一个 bin 的右边界。
X = randn(1000,1);
edges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5];
N = histcounts(X,edges)
2.4 归一化的 bin 计数
将小于 100 的所有质数分布到多个 bin 内。将 'Normalization'
指定为 'probability'
以对 bin 计数进行归一化,从而 sum(N)
为 1
。即,每个 bin 计数代表观测值属于该 bin 的可能性。
X = primes(100);
[N,edges] = histcounts(X, 'Normalization', 'probability')
2.5 确定 bin 放置
将介于 -5 和 5 之间的 100 个随机整数分布到多个 bin 内,并将 'BinMethod'
指定 'integers'
以使用以整数为中心的单位宽度 bin。指定 histcounts
的第三个输出以返回代表数据 bin 索引的向量。
X = randi([-5,5],100,1);
[N,edges,bin] = histcounts(X,'BinMethod','integers');
通过计算数字 3
在 bin 索引向量 bin
中的出现次数求第三个 bin 的 bin 计数。结果与 N(3)
相同。
count = nnz(bin==3)