我想知道这些数组的这两个声明之间的区别,一个是这样定义的(double array[a][b][c][d]
),另一个是不同(双数组[a*b*c][d]
)
double weight4_5[LAYER4][LAYER5][LENGTH_KERNEL][LENGTH_KERNEL];
double weight5_6[LAYER5 * LENGTH_FEATURE5 * LENGTH_FEATURE5][OUTPUT];
如果我想使用 for 循环将值加载到这两个数组,我该怎么做?
最佳答案
第一个是 4 维数组。
- 通过
weight4_5[i][j][k][l]访问
第二个是二维数组。它是一个展平的数组。
- 访问基本上是通过
weight5_6[x][y]
但是需要根据4D原始数组进行一些计算才能得到x
的值。< 您可以根据需要以多种方式组织它(例如,按行、按列等),其中一种方法是
x= ((((i*LAYER5)+j)*LENGTH_FEATURE5)+k) y = l;
关于c - 这两种数组声明有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126277/