202601061423
This commit is contained in:
@@ -920,7 +920,7 @@ namespace WindowsFormsApp6
|
||||
/// <summary>
|
||||
/// 计算标准偏差
|
||||
/// 计算方式:基于每个试样的平均芯吸速率计算标准偏差(组间标准偏差)
|
||||
/// 结果:只有一个标准偏差值,合并显示在第1列
|
||||
/// 结果:只有一个标准偏差值,只在试样1的第1列显示
|
||||
///
|
||||
/// 说明:
|
||||
/// - 每5个试样为一组,计算该组的标准偏差
|
||||
@@ -938,9 +938,9 @@ namespace WindowsFormsApp6
|
||||
// 清空标准偏差行的所有数据
|
||||
for (int i = 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
stdRow[$"试样{i}_1"] = 0.0;
|
||||
stdRow[$"试样{i}_2"] = 0.0;
|
||||
stdRow[$"试样{i}_3"] = 0.0;
|
||||
stdRow[$"试样{i}_1"] = DBNull.Value;
|
||||
stdRow[$"试样{i}_2"] = DBNull.Value;
|
||||
stdRow[$"试样{i}_3"] = DBNull.Value;
|
||||
}
|
||||
|
||||
// 计算每组(5个试样)的标准偏差
|
||||
@@ -982,7 +982,7 @@ namespace WindowsFormsApp6
|
||||
stdDev = Math.Sqrt(sumOfSquares / (groupAverages.Count - 1));
|
||||
}
|
||||
|
||||
// 只在该组第1个试样的第1列显示标准偏差(合并显示效果)
|
||||
// 只在该组第1个试样的第1列显示标准偏差,其他列保持DBNull
|
||||
stdRow[$"试样{startSample}_1"] = Math.Round(stdDev, 2);
|
||||
}
|
||||
}
|
||||
@@ -992,7 +992,7 @@ namespace WindowsFormsApp6
|
||||
// 清空所有行的标准偏差列
|
||||
foreach (DataRow row in sampleDataTable.Rows)
|
||||
{
|
||||
row[ROW_STD_DEVIATION] = 0.0;
|
||||
row[ROW_STD_DEVIATION] = DBNull.Value;
|
||||
}
|
||||
|
||||
// 计算每组(5个试样)的标准偏差
|
||||
@@ -1037,7 +1037,7 @@ namespace WindowsFormsApp6
|
||||
stdDev = Math.Sqrt(sumOfSquares / (groupAverages.Count - 1));
|
||||
}
|
||||
|
||||
// 只在该组第1个试样的第1次测试行显示标准偏差(合并显示效果)
|
||||
// 只在该组第1个试样的第1次测试行显示标准偏差,其他行保持DBNull
|
||||
int targetRowIndex = (startSample - 1) * 3; // 第1次测试的行索引
|
||||
if (targetRowIndex < sampleDataTable.Rows.Count)
|
||||
{
|
||||
|
||||
@@ -455,28 +455,20 @@ namespace WindowsFormsApp6
|
||||
DataRow avgRow = dataTable.NewRow();
|
||||
avgRow["序号"] = $"平均时间(s) 试样{startSample}-{endSample}";
|
||||
|
||||
// 将平均值显示在该组的所有试样列(合并显示效果)
|
||||
for (int i = startSample; i <= endSample; i++)
|
||||
// 只在该组第一个试样列显示平均值,其他列设置为DBNull
|
||||
for (int i = 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = groupAvg;
|
||||
}
|
||||
}
|
||||
|
||||
// 其他列设置为空
|
||||
for (int i = 1; i < startSample; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
for (int i = endSample + 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
// 只在该组第一个试样列显示平均值
|
||||
if (i == startSample)
|
||||
{
|
||||
avgRow[$"试样{i}"] = groupAvg;
|
||||
}
|
||||
else
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -754,27 +746,20 @@ namespace WindowsFormsApp6
|
||||
avgAbsorption = 0;
|
||||
}
|
||||
|
||||
// 将平均值显示在该组的所有试样列(合并显示效果)
|
||||
for (int i = startSample; i <= endSample; i++)
|
||||
// 只在该组第一个试样列显示平均值,其他列设置为DBNull
|
||||
for (int i = 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = avgAbsorption;
|
||||
}
|
||||
}
|
||||
// 其他列设置为空
|
||||
for (int i = 1; i < startSample; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
for (int i = endSample + 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
// 只在该组第一个试样列显示平均值
|
||||
if (i == startSample)
|
||||
{
|
||||
avgRow[$"试样{i}"] = avgAbsorption;
|
||||
}
|
||||
else
|
||||
{
|
||||
avgRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(avgRow);
|
||||
@@ -790,27 +775,20 @@ namespace WindowsFormsApp6
|
||||
maxAbsorption = 0;
|
||||
}
|
||||
|
||||
// 将最大值显示在该组的所有试样列(合并显示效果)
|
||||
for (int i = startSample; i <= endSample; i++)
|
||||
// 只在该组第一个试样列显示最大值,其他列设置为DBNull
|
||||
for (int i = 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
maxRow[$"试样{i}"] = maxAbsorption;
|
||||
}
|
||||
}
|
||||
// 其他列设置为空
|
||||
for (int i = 1; i < startSample; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
maxRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
for (int i = endSample + 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
maxRow[$"试样{i}"] = DBNull.Value;
|
||||
// 只在该组第一个试样列显示最大值
|
||||
if (i == startSample)
|
||||
{
|
||||
maxRow[$"试样{i}"] = maxAbsorption;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(maxRow);
|
||||
@@ -826,27 +804,20 @@ namespace WindowsFormsApp6
|
||||
stdDev = 0;
|
||||
}
|
||||
|
||||
// 将标准偏差显示在该组的所有试样列(合并显示效果)
|
||||
for (int i = startSample; i <= endSample; i++)
|
||||
// 只在该组第一个试样列显示标准偏差,其他列设置为DBNull
|
||||
for (int i = 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
stdDevRow[$"试样{i}"] = stdDev;
|
||||
}
|
||||
}
|
||||
// 其他列设置为空
|
||||
for (int i = 1; i < startSample; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
stdDevRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
for (int i = endSample + 1; i <= currentSampleCount; i++)
|
||||
{
|
||||
if (dataTable.Columns.Contains($"试样{i}"))
|
||||
{
|
||||
stdDevRow[$"试样{i}"] = DBNull.Value;
|
||||
// 只在该组第一个试样列显示标准偏差
|
||||
if (i == startSample)
|
||||
{
|
||||
stdDevRow[$"试样{i}"] = stdDev;
|
||||
}
|
||||
else
|
||||
{
|
||||
stdDevRow[$"试样{i}"] = DBNull.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(stdDevRow);
|
||||
|
||||
Reference in New Issue
Block a user