List<int> NPower = new List<int>();
List<double> list = new List<double>();
try
{
for (int i = 1; i < dataGridView1.Rows.Count; i++)
{
for (int n = 0; n < i + 30; n++)
{
NPower.Add(Convert.ToInt32(dataGridView1.Rows[i + n].Cells[6].Value));
}
}
average = NPower.Average();
total = Math.Pow(average, 4);
NPower.Clear();
}
catch (Exception)
{
average = NPower.Average();
NP = Convert.ToInt32(Math.Pow(average, (1.0 / 3.0)));
label19.Text = "Normalised Power: " + NP.ToString();
NPower.Clear();
}
嗨所以我正在尝试计算循环极地循环的归一化功率。我知道,对于你需要的标准化功率:
1)从30秒标记开始,计算滚动30秒平均值(显然是前一个时间点)。
2)将步骤#1中获得的所有值提高到4次幂。
3)取步骤#2中获得的所有值的平均值。
4)取第3步中获得的值的第4个根。
我想我已经做到了,但标准化的功率出现了16这是不正确的。任何人都可以查看我的代码,看看他们是否能找到解决方案。谢谢,对不起我的代码,我还是很新,所以我的代码可能格式不正确。
答案 0 :(得分:-1)
我不确定我是否完全理解您的要求或代码,但我注意到了一些事情:
i
不应该初始化为30而不是1?n
初始化为i
而不是0?catch
区块内计算的?Math.Pow(average, (1.0 / 4.0))
,因为你想要第四个根,而不是第三个根?