例如,我的数组大小为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阵列,并保留平均值。
更清楚地说:我有很多绘制图表的值,直到程序运行之前,尚有多少未知数。我需要制作数量较少的值的数组,但具有与原始数组相同的“形状”。