0

私は3次元行列を持っています

private int[][][] Matrix

しかし、これを埋める方法がわかりません。最初の次元は画像のスライス用で、2 番目は 1 つのスライスの x 値用、3 番目のスライスは y 値用です。

この配列にテスト用のデータを入力する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

1

次のようなことができます。

Matrix = new int[5][][]; // 5 slices
Matrix[0] = new int[3][]; // 3 x values for the first slice
Matrix[0][0] = new int[2]; // 2 y values for the first x value in the first slice

しかし、私はあなたがこのようなものを使うべきではないと思います。非常にエラーが発生しやすいです。

私は次のようなことを提案します:

class Slice
{
    public IList<XValue> XValues {get; set; }
}

class XValue
{
    public IList<YValue> YValues {get; set; }
}

class YValue
{
    // ...
}

var slices = new List<Slice>();
于 2011-05-23T13:50:18.630 に答える
0

配列リテラルを使用して、配列の配列の配列を作成できます。

private int[][][] Matrix = {
  {
    {1,2,3},
    {4,5}
  },
  {
    {1,2},
    {3},
    {4,5,6,7,8},
    {9,10}
  },
  {
    {1,2,3}
  }
};

これはジャグ配列であるため、サブ配列が異なればアイテムの数も異なることに注意してください。3 次元行列が必要な場合はint[,,]、ネストされた 1 次元配列ではなく、3 次元配列が必要になる場合があります。

于 2011-05-23T13:56:07.037 に答える