2016-12-24 43 views
-5

我目前正在写一点点爱。这个ai需要大量的数据(大约270万)。布施的libary输入最简单的方法和预期成果是通过执行以下操作:如何在c#中生成一个双数组数组?

  Double[][] Expected = 
     { 
      new[] {0.0}, 
      new[] {0.0}, 
      new[] {0.0}, 
      new[] {0.0}, 
      new[] {1.0}, 
      new[] {1.0}, 
      new[] {1.0}, 
      new[] {1.0} 
     }; 

因为我这个数组中需要270万个阵列,我写了一个小功能,要做到这一点:

 private static double[][] getIdeal() 
    { 
     double[][] ideal = new double[2798029][]; 
     for(int i = 0; i < ideal.Length; i++) 
     { 
      if (i < 1727310) 
      { 
       ideal[0][i] = 0.0; <-- Index Out of Range Exception 
      } 
      else 
      { 
       ideal[0][i] = 0.0; 
      } 
     } 
     return ideal; 
    } 

但它会抛出超出范围的异常。我认为变量理想的初始化格式是错误的,但我不知道是什么。我想要一个大小为2798029的数组,其大小为1的数组。然后,我想将数组中的数组的值设置为0,其他值为1。我希望能解释一切。

感谢您

+0

如果您想要大小为1的数组,为什么不直接放置值?像'double []'在每个单元中有大小为1的数组的原因是什么? –

+0

这是因为正如我所说我用它作为ai。该库被称为encog。我想保持一切清洁,并保持双[] []格式。现在我只是好奇如何去做。 – FritzFurtz

+0

好的,你也必须初始化内部数组。 'ideal [i] = new double [1];'然后'ideal [i] [0] = 0.0;' –

回答

0
 private static double[][] getIdeal() 
{ 
    double[][] ideal = new double[2798029][]; 
    for(int i = 0; i < ideal.Length; i++) 
    { 
     ideal[i] = new double[1]; //Note: Initilized ideal[i] 
     if (i < 1727310) 
     { 
      ideal[i][0] = 0.0; <-- No More Index Out of Range Exception 
      //Note: Swapped i and 0. 
     } 
     else 
     { 
      ideal[i][0] = 0.0; 
     } 
    } 
    return ideal; 
} 

OK,你必须得初始化数组内。理想[i] =新双[1];然后理想[i] [0] = 0.0;
- M.kazem Akhgary 12分钟前

谢谢你的回答。

+0

恭喜你,你完成了一步......但我仍然认为你的真正问题仍然存在,并没有与此代码有关... –

+0

实际上,现在ai正在运行,所以我认为我所有的问题(与此代码)是固定的。如果你的意思是我真正的问题是我的生活,那你是对的。我真正的问题仍然存在。 – FritzFurtz

+0

'如果你的意思是我真正的问题是我的生活'。你是怎么结束的呢?我从来没有想过与你的个性有关的东西......这是关于你如何处理编码问题...... –

相关问题