C#计算实时数据滑动平均值
时间: 2024-10-17 16:10:53 浏览: 26
在C#中,计算实时数据的滑动平均值通常涉及到窗口滑动或者使用缓冲区技术。一种常见的做法是维护一个固定大小的缓存数组(也叫缓冲池),每次新数据到来时,会替换掉数组的第一个元素并累加新的值,然后对数组中的所有元素求和除以数组长度得到当前的平均值。
下面是一个简单的示例代码片段:
```csharp
using System;
using System.Collections.Generic;
public class SlidingAverageCalculator
{
private readonly int windowSize; // 滑动窗口大小
private List<double> buffer = new List<double>(); // 缓冲区
public SlidingAverageCalculator(int size)
{
windowSize = size;
}
public double CalculateAverage(double value)
{
// 如果缓冲区已满,移除第一个元素
if (buffer.Count == windowSize)
buffer.RemoveAt(0);
// 添加新数据并更新平均值
buffer.Add(value);
return buffer.Average();
}
}
// 使用示例
public static void Main()
{
SlidingAverageCalculator calculator = new SlidingAverageCalculator(5); // 设置滑动窗口为5
while (true)
{
double newData = GetNextValue(); // 获取实时数据函数
double average = calculator.CalculateAverage(newData);
Console.WriteLine($"Current average: {average}");
}
}
```
在这个例子中,`GetNextValue()`是一个模拟获取实时数据的函数,你需要根据实际数据源来替换它。
阅读全文