3D数组中的ArrayIndexOutOfBoundsException

时间:2015-05-30 18:26:33

标签: java arrays multidimensional-array neural-network

我正在尝试为神经网络制作一个锯齿状数组,这给了我一个超出范围的错误......

int[] sizes = {
    layer1, layer2, layer3
};
int k = sizes.length - 1;
double[][][] net = new double[k][][];
int i;
for (i = 0; i < k; i++)
   net[i] = new double[sizes[i]][];
for (int j = 0; j < sizes[i]; j++)
   net[i][j] = new double[sizes[i + 1]];

net[x][ ][y]中y的大小应等于net[x+1][y][ ]的大小。

我是在纸上做的,我认为这样可行。

1 个答案:

答案 0 :(得分:1)

int[] sizes = {
    layer1, layer2, layer3
};
int k = sizes.length - 1;

因此,k等于2.

int i;
for (i = 0; i < k; i++)
   net[i] = new double[sizes[i]][];

在该循环之后i等于2.

for (int j = 0; j < sizes[i]; j++)
   net[i][j] = new double[sizes[i + 1]];
                          ^^^^^^^^^^^^
                          ArrayIndexOutOfBoundsException

轰隆,sizes[i + 1]抛出ArrayIndexOutOfBoundsException,因为sizes只有{1}}的索引,而你指的是sizes[3]