|  | ■No84541 (emu さん) に返信
CSVファイルはこっちへ置いておくとして、最初の投稿の
> //-----------------------------------------
> public data1(double q, double a1)
>     {
>         this.q = q;
>         this.a1 = a1;
>     }
> //-----------------------------------------
このコードだと、ソース(この場合はソースコードの意味もあるけど、元ネタという意味で)
が足りなくて、ちょっと推測というより推理する感じになっちゃってましたね。
> //-------------------------------------------------
> public List<data1> qtArray;
>  public csvreadp(string data1)
>     {
>         this.qtArray = new List<data1>();
>         StreamReader sw = new StreamReader(data1, System.Text.Encoding.UTF8);
>         string line;
>         while ((line = sw.ReadLine()) != null)
>         {
>             string[] strs = line.Split(',');
>             if (strs.Length != 2) continue;
> 
>            double a= Double.Parse(strs[0]);
>            double b= Double.Parse(strs[1]);
>             qtArray.Add(new data1(a, b));
> 
>           //  Debug.Log("q:" + a + ", a:" + b);
>         }
> //-----------------------------------------------------
合わせて読むと data1 が座標をあらわすクラスで、最初のコードは data1 のコンストラクタ
で、その中に q と a1 という( X と Y にあたるのかな)座標を定義している…ということ
でしょうか。
今回出てきたコードと合わせて読むことでなんとなくそこまで『推測』できるぐらいになりましたが
最初のコードでは、やはり『推理』レベルだと思いました。動きが読み取れる程度の最低限の
コードを提示していただければと思います。
そして合わせて読んでみた限りですが CSV ファイルを読んだ結果得られるのは data1 クラス
のリストで、結論から言うとこれは 2 次元配列ではないですね。 1 次元配列です(正確に言うと
配列でもないですが)。
最初の投稿にあったコード
> //---------------------------------------------------------
> for (int idx = 0; idx < 100; idx++)
>       {
>            Point.Add(new Vector2(q[idx],a1[idx]));
>         }
> //---------------------------------------------------------
の意図(のようなもの)を解釈するとすれば、こんな感じになるんじゃないでしょうか。
(よく見ると idx でループしているので、これも2次元ではないですね)
    for (int idx = 0; idx < 100; idx++)
    {
        Point.Add(new Vector2(data1[idx].q, data1[idx].a1));
    }
自分は Unity は触ったことがないのでわからないですが、むしろ 1 次元だ 2 次元だというより
「なぜこういうコードなのか」「このコードはどういう意図で書かれているのか」をもう少し
理解するように努めたほうがいいのかな…という気はしました。
 |