0

私はこのコードを使用しました:

    private void ilPanel1_Load(object sender, EventArgs e)
    {    using (ILScope.Enter())
        {
            ILArray<float> X = new float[] { 0, 0, 1, 1, 2.5F, -2.6F, 5, 9, 1, 38 };
            ILArray<float> Y = new float[] { 1, 0, 1, 0, 1.5F,  0.5F, 5, 9, 1, 39 };
            ILArray<float> Z = new float[] { 0, 0, 1, 1, 0.4F, -0.2F, 5, 9, 1, 39 };
            X = X.Reshape(2,5);
            Y = Y.Reshape(2,5);
            Z = Z.Reshape(2,5);
            ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) {
                new ILSurface(Z, colormap: Colormaps.Cool) {
                    Colors = 1.4f  ,Children = { new ILColorbar() }
                }
            });
        }
    }

これにより、次が生成されます。

ここに画像の説明を入力

ただし、この質問を確認し、非推奨の ILnumerics ソリューションを適応させようとしました(他の c# コードが見つからなかったため) が、それでも取得できません。すべての座標 (Z、X、および Y) が配列内の 1 つのスライス (mxn) に対応します。したがって、データを再形成する必要があります。

この部分が問題です:

            X = X.Reshape(2,5);
            Y = Y.Reshape(2,5);
            Z = Z.Reshape(2,5);

正しいサイズを指定しないと、プログラムが失敗するため、例では各ベクトルに 10 個の要素があるため、再編集するときに 2,5 を掛けると 10 になりますか? ...

reshape に 2,5 を入れた場合のように 11 個の要素があり、エラーが発生する場合はどうなりますか?

何をすべきか?

使用してみX = X.Reshape(11);ましたが失敗します...使用するX = X.Reshape(10);と何も描画されません

4

1 に答える 1