直方图中最大二进制数的计数,C#,锐利

时间:2016-01-23 19:01:21

标签: histogram c#

我想制作数据的直方图,我使用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,但我找不到任何内容。

1 个答案:

答案 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]),你可以使用像 -

这样的方法在直方图中迭代Buckets
var 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的索引。