4

我只是在尝试源代码。此源代码具有以下行:

double[][] inputs = sourceMatrix.Submatrix(null, 0, 1).ToArray();

最初,这个“输入”是使用矩阵填充的,但是我仍然太缺乏经验而无法使用这个矩阵。我首先想用一些手工编码的值来测试它。

有人可以告诉我如何用一些值填充 double[][] 吗?

我对 C# 还没有真正的经验。我猜 [][] 表示一个三维数组。

在VB6中我会简单地说

Redim inputs(2,2)

进而:

inputs(0,0) = 64
inputs(0,1) = 92
inputs(0,2) = 33
inputs(1,0) = 4
inputs(1,1) = 84
inputs(1,2) = 449

ETC...

但我想这在 C# 中并不容易。如果有人可以提供帮助,我会非常高兴。

谢谢你。

4

5 回答 5

9

adouble[][]是一个锯齿状数组- 它是一个数组数组。要填充它,您将用一组数组填充外部数组double[]。但是,我希望您想要一个矩形数组:double[,]例如new double[3,2]. 初始化此类数组有一个简写:

double[,] data = new double[2, 3] { { 64, 92, 33 }, { 4, 84, 449 } };
double val = data[1, 2]; // 449.0
于 2013-02-11T10:30:03.760 回答
1

你有一个数组数组。所以你应该像这样初始化它们:

double[][] inputs = new double[][]
    {
        new double[] { 1, 2, 3 },
        new double[] { 4, 5, 6 },
        new double[] { 7, 8, 9 }
    };

如果您有一个二维数组 ( inputs[,]),那么它将是:

double[,] inputs = new double[,]
    {
        { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };

但正如 Jon Skeet 所说,阅读数组是你应该做的第一件事。

于 2013-02-11T10:29:44.920 回答
1

为了保持简单:

double[][] inputs = new double[3][];
inputs[0] = new double[3];
inputs[1] = new double[3];
inputs[2] = new double[3];

inputs[0][0] = 1;
inputs[0][1] = 2;
inputs[0][2] = 3;
inputs[1][0] = 4;
inputs[1][1] = 5;
inputs[1][2] = 6;
inputs[2][0] = 7;
inputs[2][1] = 8;
inputs[2][2] = 9;
于 2013-02-11T10:29:54.750 回答
0

看看使用double[,]这就是你需要的数组

于 2013-02-11T10:31:09.553 回答
0

double[][] 是一个锯齿状数组。您可能是指 double[,] ,它是二维数组。

初始化一个二维数组:

double[,] matrix = new double[3,2] = {{1,2} {3,4}, {4,5}}

您已经从其他答案中获得了初始化锯齿状数组的示例。

实际上,锯齿状数组和真正的多维数组之间的区别在于锯齿状数组是数组的数组,因此它们可能不是矩形的,即矩阵,因此是锯齿状的:

double[][] jagged = new double[2]
                   {
                       new double[4],
                       new double[2]
                    };

它们在内存中的布局方式也不同。多维数组是对连续内存空间的单一引用。锯齿状数组是真正的数组数组。

在此处阅读有关它的更多信息

于 2013-02-11T10:36:12.773 回答