我想制作数据的直方图,我使用c#
在MathNet.Numerics.Statistics
使用直方图类。
double[] array = { 2, 2, 5,56,78,97,3,3,5,23,34,67,12,45,65 };
Vector<double> data = Vector<double>.Build.DenseOfArray(array);
int binAmount = 3;
Histogram _currentHistogram = new Histogram(data, binAmount);
如何获得最大垃圾箱的数量?或者只是bigest bin的索引?我尝试使用GetBucketOf
来获取它,但为了做到这一点,我需要这个桶中的元素:(
有没有其他方法可以做到这一点?我阅读了文档和Google,但我找不到任何内容。
答案 0 :(得分:0)
(嗨,我会用这个评论,但我今天刚加入,还没有50个评论的声誉!)我刚看了一眼 - http://numerics.mathdotnet.com/api/MathNet.Numerics.Statistics/Histogram.htm。该文档页面(页脚说它是使用http://docu.jagregory.com/构建的)显示了一个名为Item的公共属性,它返回一个Bucket。我想知道这是否是您需要使用的属性,因为自动生成的文档声明Item属性“获取'第n个桶”,但不清楚Item属性如何充当索引器。看看你的代码我会首先尝试_currentHistogram.Item [n](如果这不起作用,请尝试使用_currentHistogram [n]),你可以使用像 -
这样的方法在直方图中迭代Bucketsvar countOfBiggest = -1;
var indexOfBiggest = -1;
for (var n = 0; n < _currentHistogram.BucketCount; n++)
{
if (_currentHistogram.Item[n].Count > countOfBiggest)
{
countOfBiggest = _currentHistogram.Item[n].Count;
indexOfBiggest = n;
}
}
上面的代码假设直方图使用0而不是基于1的索引。