none
List<T>のAddメソッドの使用についての指導依頼 RRS feed

  • 質問

  • 下記のようなAddメッソドの場合

     List<double> x=new List<double>();

     List<double> mean25=new List<double>();

    と定義し、

    xはテキストファイルから読み込む入力データで、

    mean25は次のような処理の場合、

     for(int i=0; i<n-24; i++)

    {

         mean=0.0;

        for(int j=0; j<25; j++)

         {

                mean +=x[i+j];

         }

         mean25.Add(mean/25.0);

    }

       n=x.Count;

      m=mean25.Count;

    この場合、nは入力データ数と一致しますが、mはn-24とならなければならないはずなのに、ちょうど七倍の数になっています。

    詳細を調べますと、計算結果の配列が七回繰り返されて記憶されています。これを防ぐ方法をご指導下さい。

    2006年12月18日 1:02

すべての返信

  • まずはブレークポイントを for の開始位置あたりにはって、一回ごとに mean25 の Count を始めとした各値を確認しながら 1 ステップずつ進めてみたらどうでしょう。
    2006年12月18日 1:25
  • 外側のloopでn-24回Addしてるんだから、どこかヨソでAddしてない限りあり得ませんねぇ。
    loopに入る直前、mean25は確かに空ですか? mean25.Countは0になっていますか?

    2006年12月18日 7:44
  • コピー&ペーストしただけで実現できる最低限のコードがほしいですね。nが何とかよくわかりませんし。
    Count と Capacity プロパティを間違ってたりしませんか?(7倍というのはよくわかりませんが)

    2006年12月18日 15:45