三维数组——与 宝玉QQ群讨论交流之二
宝玉 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
嗯,###鞠老师已经讲了