用点数据填充三维数组(交错数组)

本文关键字:数组 三维 数据 填充 | 更新日期: 2023-09-27 17:57:15

>我确实有一个三维矩阵

private int[][][] Matrix

但我不知道如何填写这个。第一个维度用于我的图片切片第二个用于我的一个切片的 X 值,第三个切片用于我的 Y 值。

所以有人知道如何用一些数据填充这个数组进行测试吗?

谢谢

用点数据填充三维数组(交错数组)

你可以做这样的事情:

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>();

您可以使用数组文字来创建数组的数组的数组:

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

请注意,这是一个交错数组,因此不同的子数组可以具有不同数量的项目。如果你想要一个三维矩阵,你可能想要三维数组int[,,]而不是嵌套的一维数组。