2016-12-24 28 views
-5

私は現在、少しAIを書いています。このaiには多くのデータ(約270万)が必要です。入力と期待出力libaryを与える簡単な方法は、以下の手順を実行している:私はこの配列に270万個の配列を必要とするので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} 
     }; 

、私はそれを行うために少し機能を書いた:

 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; 
    } 

しかし、範囲外の例外がスローされます。私は、変数idealの初期化のフォーマットで何かが間違っていると思うが、私は何がわからない。私はそれにサイズ1の配列を持つ2798029のサイズの配列が欲しいです。次に、配列の配列のいくつかの値を0に、もう1つを1に設定します。それがすべてを説明することを願っています

+0

サイズ1の配列が必要な場合は、値を直接入力するだけではどうですか? 'double []'のように、各セルにサイズ1の配列を持つ理由は何ですか? –

+0

私が言ったように私はAIのためにそれを使用するからです。 libaryはencogと呼ばれています。私はすべてをきれいにして、ダブル[] []形式にしておきたい。そして今、私はそれをどうやって行うのか不思議です。 – FritzFurtz

+0

OK内部配列も初期化する必要があります。 '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

おかげで、あなたはあまりにも内側の配列を初期化する必要があります。 ideal [i] =新しいダブル[1];理想的な[i] [0] = 0.0;
- M.kazem Akhgary 12分前

は答えをいただき、ありがとうございます。

+0

おめでとう、あなたはもう一度ステップを完了しました...しかし、私はまだあなたの本当の問題はまだそこにあり、このコードとは関係ないと思っています.... –

+0

実際にはAIは今実行中ですので、固定されている。私の本当の問題が私の人生だと言うなら、あなたは正しいのです。私の本当の問題はまだここにあります。 – FritzFurtz

+0

「私の本当の問題は私の人生だ」と言ったら。どうしてこれで終わりましたか?私はあなたの人格に関連する何かを決して意味しませんでした...それは、あなたがコーディングの問題にどのように近づくかに関するすべてです... –