2017-05-05 25 views
0
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(); 
} 

嗨,所以我想要計算循環極地循環的標準化功率。我知道你需要的標準化功率:c#極地循環的歸一化功率

1)從30秒開始,計算一個滾動30秒的平均值(顯然是前面的時間點)。

2)將步驟1中獲得的所有值提升到4次冪。

3)取所有在步驟2中獲得的值的平均值。

4)取第3步獲得的值的第4根。

我想我已經這樣做了,但規範化的權力來了16是不正確的。任何人都可以看看我的代碼,看看他們是否可以找出解決方案。 Thankyou,對於我的代碼感到抱歉,我還是很新的,所以我的代碼可能是不正確的格式。

+1

你說第四根,但你用1/3。然後你這麼做......在一個catch塊內?我不明白爲什麼。如果try塊中有一個異常,那麼很可能是不正確的。 –

回答

-1

我不知道,我理解您的需求或代碼完全,但幾件事情,我注意到:

  1. 既然你應該開始服用滾動平均30秒後,不應i初始化爲30而不是1?
  2. 既然它是一個滾動平均值,不應該n初始化爲值i而不是0?
  3. 爲什麼在catch塊內計算最終結果?
  4. 不應該是Math.Pow(average, (1.0/4.0))既然你想要第四根,而不是第三根?
+0

-1請勿發表評論作爲答案。特別是如果你的評論只是問題而已。問題不是答案... – elgonzo

+0

OP的問題是什麼導致他們的代碼產生不正確的結果,我看到了幾件事情似乎是可能的原因。由於這個問題含糊不清,但我無法肯定地說出來,所以我以問題的形式解釋了我的答案。 – finrod