Matlab之统计一维数组直方图 bin 计数函数histcounts

文章介绍了numpy库中的histcounts函数,用于数据分箱并计算每个bin的计数,支持自动分bin、指定bin数量和边界,以及归一化选项。通过实例展示了如何使用该函数处理不同类型的分布和bin设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、语法

[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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞瑜·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值