53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using Aitex.Core.UI.ControlDataContext;
|
||
|
||
namespace SicModules.PMs.RecipeExecutions
|
||
{
|
||
public class RecipeEndDataItem
|
||
{
|
||
public RecipeEndDataItem(string name, List<HistoryDataItem> historyDataItem)
|
||
{
|
||
Name = name;
|
||
HistoryDataItem = historyDataItem;
|
||
}
|
||
|
||
public List<HistoryDataItem> HistoryDataItem { get; set; }
|
||
|
||
public string Name { get; }
|
||
|
||
public string Max
|
||
{
|
||
get { return HistoryDataItem.Count > 0 ? HistoryDataItem.Max(item => item.value).ToString("F2") : "0"; }
|
||
}
|
||
|
||
public string Min
|
||
{
|
||
get { return HistoryDataItem.Count > 0 ? HistoryDataItem.Min(item => item.value).ToString("F2") : "0"; }
|
||
}
|
||
|
||
public string Mean
|
||
{
|
||
get { return HistoryDataItem.Count > 0 ? HistoryDataItem.Average(item => item.value).ToString("F2") : "0"; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 样本标准差
|
||
/// </summary>
|
||
public string StdDev
|
||
{
|
||
get
|
||
{
|
||
if (HistoryDataItem.Count == 0)
|
||
return "0";
|
||
|
||
double avg = HistoryDataItem.Average(item => item.value); // 计算平均数
|
||
double sum = HistoryDataItem.Sum(item => Math.Pow(item.value - avg, 2)); // 计算各数值与平均数的差值的平方,然后求和
|
||
double stdDev = Math.Sqrt(sum / (HistoryDataItem.Count - 1)); // 除以数量减1,然后开方
|
||
|
||
return stdDev.ToString("F2");
|
||
}
|
||
}
|
||
}
|
||
} |