Скольжение стандартного отклонения с помощью Math.Net и LINQ вместо цикла for
Реализованные for
цикл уже показывает мой ожидаемый результат. Но мне было интересно, есть ли умное решение LINQ.
QcMeasurementScan1 = new BindableCollection<Measurement>(measurements.Where(m => m.ScanId == 1));
QcMeasurementScan2 = new BindableCollection<Measurement>();
var ms = new MovingStatistics(25);
for (int i = 0; i < QcMeasurementScan1.Count; ++i)
{
ms.Push(QcMeasurementScan1[i].MeasurementValue);
if (i >= 24)
{
var centerMeas = QcMeasurementScan1[i - 12];
QcMeasurementScan2.Add(new Measurement { Position = centerMeas.Position, MeasurementValue = ms.StandardDeviation, ScanId = centerMeas.ScanId });
}
}
С Entity
public struct Measurement
{
public int ScanId { get; set; }
public double Position { get; set; }
public double MeasurementValue { get; set; }
}