将数组重新缩放为较小的数组,保留平均值

时间:2018-08-23 15:53:12

标签: c#

例如,我的数组大小为5159。 我需要将其缩放为790个值,但要保持在同一水平上。以较小的尺寸为例:如果我有[4,4,4,1,1,3,5]数组并将其缩放为2个元素的数组,则它将为[4,3]-前三个平均值为4,后三个变为4.但是,如果我有数组[4、4、4、3、2],我不知道如何将其缩放为2个值。因为每个部分平均需要2.5个元素。

我尝试过:

private static IEnumerable<List<byte>> SplitList(List<byte> samples, int chunks)
{
    var list = new List<List<byte>>();

    var itemsPerChunk = samples.Count / chunks;

    for (int i = 0; i < samples.Count; i += itemsPerChunk)
    {
        list.Add(samples.GetRange(i, Math.Min(itemsPerChunk, samples.Count - i)));
    }

    return list;
}

但这不起作用,并且返回860个部分,因为itemsPerChunk是整数(6而不是实际的6.53 ..)。有什么建议吗?

编辑: 更明确地说,最终目标是将此5159阵列缩放为790阵列,并保留平均值。

更清楚地说:我有很多绘制图表的值,直到程序运行之前,尚有多少未知数。我需要制作数量较少的值的数组,但具有与原始数组相同的“形状”。

0 个答案:

没有答案