我想知道这两个数组声明之间的区别,一个这样定义(double array[a][b][c][d]
),另一个则不同(double array[a*b*c][d]
)
double weight4_5[LAYER4][LAYER5][LENGTH_KERNEL][LENGTH_KERNEL];
double weight5_6[LAYER5 * LENGTH_FEATURE5 * LENGTH_FEATURE5][OUTPUT];
如果我想使用for循环将值加载到这两个数组中,该怎么办?
答案 0 :(得分:1)
第一个是4维数组。
weight4_5[i][j][k][l]
访问第二个是2维数组。这是一个扁平数组。
weight5_6[x][y]
进行的,但是您需要进行一些计算才能基于4D原始数组获得x
的值。您可以根据需要以多种方式组织它(例如,按行,按列等)。一种方法是拥有
x= ((((i*LAYER5)+j)*LENGTH_FEATURE5)+k)
y = l;