三维数组——与 宝玉QQ群讨论交流之二

时间:2021-11-11 19:32:24

宝玉 12:27:35

这几天看了大部分大家交的作业,发现一个主要问题还是卡在对三维数组的理解上,之前把三维数组类比成三维空间可能会造成误导

宝玉 12:27:45

其实鞠老师解释的很好:
三维数组 本质上是一个空间结构! (x,y,z)描述了空间的一个点(数据);
a[i][j][k] 描述了存放在位置(i,j,k)的一个数据

宝玉 12:31:25

PS(Excel 工作薄)

宝玉 12:32:37

对照下Excel数据,如果是一维数组,那么这些点:
a[0] = A1 (Excel的A列1行,以下同)
a[1] = A2
a[2] = A3

a[20] = A20

宝玉 12:33:32

a[0] = A1=-2574
a[1] = A2=-4010
a[2] = A3=8243

a[20] = A20=-1520

宝玉 12:33:45

那么到二维数组

a[0][0] = A1 = -2574
a[0][1] = B1 = 2740
a[1][0] = A2 = -4010
a[1][1] = B2 = -4182

宝玉 12:40:08

三维数组:
a[0][0][0] = A1
a[0][0][1] = B1
a[0][0][2] = C1
a[0][1][0] = A2
a[0][1][1] = B2
a[0][1][2] = C2

宝玉 12:41:46

假如我们数据不止一页

在Excel的第二页也有同样的ABC三列数据,那么第二页的数据就可以表示为:
a[1][0][0] = $2.A1 (Excel 第二页A列第一行)
a[1][0][1] = B1
a[1][0][2] = C1
a[1][1][0] = A2
a[1][1][1] = B2
a[1][1][2] = C2

宝玉 12:45:18

现在我们只有一页数据,第一个下标都是0就好了

再假设我们需要构造一个四位数组,我们有ABCD列数据

a[0][0][0][0] = A1
a[0][0][0][1] = B1
a[0][0][0][2] = C1
a[0][0][0][3] = D1
a[0][0][1][0] = A2
a[0][0][1][1] = B2
a[0][0][1][2] = C2
a[0][0][1][3] = D2

宝玉 12:47:28

我们再假设我们有两页同样格式的数据

那么第二页就是
a[0][1][0][0] = $2.A1
a[0][1][0][1] = $2.B1
a[0][1][0][2] = $2.C1
a[0][1][0][3] = $2.D1
a[0][1][1][0] = $2.A2
a[0][1][1][1] = $2.B2
a[0][1][1][2] = $2.C2
a[0][1][1][3] = $2.D2

宝玉 12:49:02

然后我们还可以假设我们有第二个多页的Excel文件

宝玉 12:49:10

嗯,鞠老师已经讲了

宝玉 12:49:10

嗯,###鞠老师已经讲了