如果我有一组数据Y和一组以bin为中心的分箱,我可以使用HIST命令来查找每个分箱中有多少个Y.在MATLAB中对物品进行分类
N = hist(Y,X)
我想知道的是,如果有一个内置功能,可以告诉我,每个Y放在哪个箱子,所以
[N,I] = histMod(Y,X)
将意味着Y(我== 1)会返回bin 1中的所有Y,等等。
我知道如何编写这个函数,所以我只想知道在MATLAB中是否已经内置了一个这样的函数。
如果我有一组数据Y和一组以bin为中心的分箱,我可以使用HIST命令来查找每个分箱中有多少个Y.在MATLAB中对物品进行分类
N = hist(Y,X)
我想知道的是,如果有一个内置功能,可以告诉我,每个Y放在哪个箱子,所以
[N,I] = histMod(Y,X)
将意味着Y(我== 1)会返回bin 1中的所有Y,等等。
我知道如何编写这个函数,所以我只想知道在MATLAB中是否已经内置了一个这样的函数。
相关函数histc
这样做,但它需要您定义仓边而不是仓中心。
Y = rand(1, 10);
edges = .1:.1:1;
[N, I] = histc(Y, edges);
计算边缘的边缘也很容易。在一个班轮:
N = hist(Y, X);
成为
[Nc, Ic] = histc(Y, [-inf X(1:end-1) + diff(X)/2, inf]);
拥有数控== N,加上在最后一个额外的空箱(因为我假设Y中没有值匹配INF)。 见doc histc
。
如果一个人同意使用斌边缘,而不是垃圾箱,
[N,bin] = histc(y,binedges)
作品。 Aaargh,MATLAB你的函数定义非常直观
实际上,如果bin中心不是均匀间隔的,那么bin中心和bin边之间的转换并不重要。我认为,MATLAB的hist命令实际上得到了这个错误。但是,这很好。谢谢。 – Marc 2010-09-30 18:10:17