Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting MATLAB中的物品分类_Sorting_Matlab_Histogram_Binning - Fatal编程技术网

Sorting MATLAB中的物品分类

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

如果我有一组数据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 = .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