Sorting MATLAB中的物品分类
如果我有一组数据Y和一组以X为中心的容器,我可以使用HIST命令来查找每个容器中每个Y的数量Sorting MATLAB中的物品分类,sorting,matlab,histogram,binning,Sorting,Matlab,Histogram,Binning,如果我有一组数据Y和一组以X为中心的容器,我可以使用HIST命令来查找每个容器中每个Y的数量 N = hist(Y,X) 我想知道的是,是否有一个内置函数可以告诉我每个Y进入哪个箱子,所以 [N,I] = histMod(Y,X) 这意味着Y(I==1)将返回bin 1中的所有Y,以此类推 我知道如何编写此函数,因此我只想知道MATLAB中是否已经有一个内置函数可以执行此操作。相关函数histc可以执行此操作,但它要求您定义箱子边缘而不是箱子中心 Y = rand(1, 10); edges
N = hist(Y,X)
我想知道的是,是否有一个内置函数可以告诉我每个Y进入哪个箱子,所以
[N,I] = histMod(Y,X)
这意味着Y(I==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]);
Nc==N,最后加上一个额外的空箱子(因为我假设Y中没有与inf匹配的值)。
如果您对使用箱子边缘而不是箱子感到满意,请参见
doc histc
[N,bin] = histc(y,binedges)
工作。Aaargh,MATLAB您的函数定义非常不直观实际上,如果bin中心的间距不均匀,则bin中心和bin边之间的转换非常重要。我认为MATLABs hist命令实际上弄错了。但这已经足够好了。谢谢。目前,Matlab文档建议在本例中使用
discretize
来获得Ic
。