在MATLAB中将项目排序到bin中

时间:2010-09-30 15:11:42

标签: sorting matlab histogram binning

如果我有一组数据Y和一组以X为中心的箱子,我可以使用HIST命令查找每个箱子中每个Y的数量。

N = hist(Y,X)

我想知道的是,如果有内置函数可以告诉我每个Y进入哪个bin,那么

[N,I] = histMod(Y,X)

意味着Y(I == 1)将返回bin 1中的所有Y,等等。

我知道如何编写这个函数,所以我只是想知道MATLAB中是否已经内置了这个函数。

2 个答案:

答案 0 :(得分:7)

相关函数histc执行此操作,但它要求您定义bin边缘而不是bin中心。

Y = rand(1, 10);
edges = .1:.1:1;
[N, I] = histc(Y, edges);

计算Bincenters的边缘也很容易。在一个班轮中:

N = hist(Y, X);

变为

[Nc, Ic] = histc(Y, [-inf X(1:end-1) + diff(X)/2, inf]);

Nc == N,最后加一个额外的空箱(因为我假设Y中没有值匹配inf)。 请参阅doc histc

答案 1 :(得分:2)

如果对使用bin边缘而不是bin来满意,

[N,bin] = histc(y,binedges)

的工作原理。 Aaargh,MATLAB你的函数定义是如此不直观

相关问题