三维数据表格

最近一直在考虑 3d搜索的问题。虽然2d搜素还未普及但是有这样的爱好也是可以允许的吧!

我们经常把关键字搜素称为第一代搜索引擎(或者说1维),图片视频的搜索称为第二代搜索引擎(或者说2维),声音以及3d物品的搜索称为第三代搜索引擎(或者说3维)。

关于关键字搜索我们就没有必要说了,Google 百度已经做得够好的了。关于2d也有好多专业人师在做,比如图片对比,智能识别等。

 

当然我们完全可以不去关心3d搜索 ,因为可能让这个技术成熟还需要一段时间。不过爱好总是允许的哈!

 

我今天要说的这个三维表格就是应用在3d搜索引擎中的数据表格。这个表格看是关系式的又非关系式。因为毕竟是基于电子计算机的所以在对数据处理上需要下更多的功夫。

废话少说,我直接把整理的内容粘贴上来:

 

我们首先来简要介绍一下多维表格,多维表格是区别于普通表格的一种全新的表格,该表格可以更加准确、方便、灵活地记录和分析单元格里的数据信息。尤其是在表示现实世界(三维或者多维)的时候更加合适。
什么是多维表格?
多维表格是相对于一维表格和二维表格而言的,通常意义上讲一维表格所记录的数据往往是某一维度方面的不同数据值,这种表格可以是一行数据或者一列数据。
1 一维表格
比如表1-1中的每个单元格都表示X轴坐标上的某一个点:
一维表格的数组通常表示为:X = Array(x0,x1,x2,x3,x4);
X轴中有1×5 =5个互不重复的地址,即:
x0,x1,x2,x3,x4

 
X轴坐标 0 1 2 3 4 
(表1-1)
再比如表1-2中的每个单元格也同样表示Y轴坐标上的某一个点:
一维表格的数组通常表示为:Y = Array(y0,y1,y2,y3,y4);
Y轴中有1×5 = 5个互不重复的地址,即:
y0,y1,y2,y3,y4
 
Y轴坐标   
0   
1   
2   
3   

(表1-2)
2 二维表格
当然你也可以把上述两个表格整合起来,变成一个表格,如表2-1所示。这种表格它既可以表示X轴的坐标也可以表示Y轴的坐标,也就是我们常说的二维表格或者表格:
二维表格的数组通常表示为:
XY = Array(
Array(x0y0,x0y1,x0y2,x0y3,x0y4),
Array(x1y0,x1y1,x1y2,x1y3,x1y4),
Array(x2y0,x2y1,x2y2,x2y3,x2y4),
Array(x3y0,x3y1,x3y2,x3y3,x3y4),
Array(x4y0,x4y1,x4y2,x4y3,x4y4));
X轴和Y轴共有5×5 = 25个互不重复的地址,即:
x0y0,x0y1,x0y2,x0y3,x0y4
x1y0,x1y1,x1y2,x1y3,x1y4
x2y0,x2y1,x2y2,x2y3,x2y4
x3y0,x3y1,x3y2,x3y3,x3y4
x4y0,x4y1,x4y2,x4y3,x4y4

 
XY轴坐标 0 1 2 3 4   
0 00 01 02 03 04   
1 10 11 12 13 14   
2 20 21 22 23 24   
3 30 31 32 33 34   
4 40 41 42 43 44 
(表2-1)
二维表格是所有表格中最常用一种,广泛地以用于数据存储和分析领域。但是它却不能够很好地表现除了行和列以外的多维数据结构。比如我们想要表示同时具有X轴、Y轴和Z轴坐标的3d物体就比较麻烦,因为我们是在二维物体(如纸张或者平面显示器)上创建一个三维的数据表格所以很难(几乎是不可能)。
 3 三维表格
 但是这并不表示我们没有办法做到。正相反我们不仅做到了,而且做得还不错。下面如图3-2(3-1)所示就是我们虚拟出来的三维表格。这个三维表格由两部分组成,其中表3-1是一个普通的二维表格,这个表格是表3-2三维表格的索引部分,我们姑且称它为索引表,索引表顾名思义就是起到一个索引的作用,通过索引表我们可以更方便地管理我们的三维表格,当然表3-2才是我们真正想要的三维表格。
三维表格的数组通常表示为:
XYZ = Array(
Array(
 Array(x0y0z0,x0y0z1,x0y0z2,x0y0z3,x0y0z4),
Array(x0y1z0,x0y1z1,x0y1z2,x0y1z3,x0y1z4),
Array(x0y2z0,x0y2z1,x0y2z2,x0y2z3,x0y2z4),
Array(x0y3z0,x0y3z1,x0y3z2,x0y3z3,x0y3z4),
Array(x0y4z0,x0y4z1,x0y4z2,x0y4z3,x0y4z4)
),
Array(
 Array(x1y0z0,x1y0z1,x1y0z2,x1y0z3,x1y0z4),
Array(x1y1z0,x1y1z1,x1y1z2,x1y1z3,x1y1z4),
Array(x1y2z0,x1y2z1,x1y2z2,x1y2z3,x1y2z4),
Array(x1y3z0,x1y3z1,x1y3z2,x1y3z3,x1y3z4),
Array(x1y4z0,x1y4z1,x1y4z2,x1y4z3,x1y4z4)
),
Array(
 Array(x2y0z0,x2y0z1,x2y0z2,x2y0z3,x2y0z4),
Array(x2y1z0,x2y1z1,x2y1z2,x2y1z3,x2y1z4),
Array(x2y2z0,x2y2z1,x2y2z2,x2y2z3,x2y2z4),
Array(x2y3z0,x2y3z1,x2y3z2,x2y3z3,x2y3z4),
Array(x2y4z0,x2y4z1,x2y4z2,x2y4z3,x2y4z4)
),
Array(
 Array(x3y0z0,x3y0z1,x3y0z2,x3y0z3,x3y0z4),
Array(x3y1z0,x3y1z1,x3y1z2,x3y1z3,x3y1z4),
Array(x3y2z0,x3y2z1,x3y2z2,x3y2z3,x3y2z4),
Array(x3y3z0,x3y3z1,x3y3z2,x3y3z3,x3y3z4),
Array(x3y4z0,x3y4z1,x3y4z2,x3y4z3,x3y4z4)
),
Array(
 Array(x4y0z0,x4y0z1,x4y0z2,x4y0z3,x4y0z4),
Array(x4y1z0,x4y1z1,x4y1z2,x4y1z3,x4y1z4),
Array(x4y2z0,x4y2z1,x4y2z2,x4y2z3,x4y2z4),
Array(x4y3z0,x4y3z1,x4y3z2,x4y3z3,x4y3z4),
Array(x4y4z0,x4y4z1,x4y4z2,x4y4z3,x4y4z4)));
XYZ轴坐标中共有5×5×5=225个互不重复的地址,即:

x0y0z0,x0y0z1,x0y0z2,x0y0z3,x0y0z4
x0y1z0,x0y1z1,x0y1z2,x0y1z3,x0y1z4
x0y2z0,x0y2z1,x0y2z2,x0y2z3,x0y2z4
x0y3z0,x0y3z1,x0y3z2,x0y3z3,x0y3z4
x0y4z0,x0y4z1,x0y4z2,x0y4z3,x0y4z4

x1y0z0,x1y0z1,x1y0z2,x1y0z3,x1y0z4
x1y1z0,x1y1z1,x1y1z2,x1y1z3,x1y1z4
x1y2z0,x1y2z1,x1y2z2,x1y2z3,x1y2z4
x1y3z0,x1y3z1,x1y3z2,x1y3z3,x1y3z4
x1y4z0,x1y4z1,x1y4z2,x1y4z3,x1y4z4)

x2y0z0,x2y0z1,x2y0z2,x2y0z3,x2y0z4
x2y1z0,x2y1z1,x2y1z2,x2y1z3,x2y1z4
x2y2z0,x2y2z1,x2y2z2,x2y2z3,x2y2z4
x2y3z0,x2y3z1,x2y3z2,x2y3z3,x2y3z4
x2y4z0,x2y4z1,x2y4z2,x2y4z3,x2y4z4)

x3y0z0,x3y0z1,x3y0z2,x3y0z3,x3y0z4
x3y1z0,x3y1z1,x3y1z2,x3y1z3,x3y1z4
x3y2z0,x3y2z1,x3y2z2,x3y2z3,x3y2z4
x3y3z0,x3y3z1,x3y3z2,x3y3z3,x3y3z4
x3y4z0,x3y4z1,x3y4z2,x3y4z3,x3y4z4)

x4y0z0,x4y0z1,x4y0z2,x4y0z3,x4y0z4
x4y1z0,x4y1z1,x4y1z2,x4y1z3,x4y1z4
x4y2z0,x4y2z1,x4y2z2,x4y2z3,x4y2z4
x4y3z0,x4y3z1,x4y3z2,x4y3z3,x4y3z4
x4y4z0,x4y4z1,x4y4z2,x4y4z3,x4y4z4

 
YX轴坐标 X0 X1 X2 X3 X4   
Y0 Y0X0 Y0X1 Y0X2 Y0X3 Y0X4   
Y1 Y1X0 Y1X1 Y1X2 Y1X3 Y1X4   
Y2 Y2X0 Y2X1 Y2X2 Y2X3 Y2X4   
Y3 Y3X0 Y3X1 Y3X2 Y3X3 Y3X4   
Y4 Y4X0 Y4X1 Y4X2 Y4X3 Y4X4 
★索引表(表3-1)

 
YXZ轴坐标 Z0 Z1 Z2 Z3 Z4   
Y0X0 y0x0z0 y0x0z1 y0x0z2 y0x0z3 y0x0z4   
Y0X1 y0x1z0 y0x1z1 y0x1z2 y0x1z3 y0x1z4   
Y0X2 y0x2z0 y0x2z1 y0x2z2 y0x2z3 y0x2z4   
Y0X3 y0x3z0 y0x3z1 y0x3z2 y0x3z3 y0x3z4   
Y0X4 y0x4z0 y0x4z1 y0x4z2 y0x4z3 y0x4z4   
Y1X0 y1x0z0 y1x0z1 y1x0z2 y1x0z3 y1x0z4   
Y1X1 y1x1z0 y1x1z1 y1x1z2 y1x1z3 y1x1z4   
Y1X2 y1x2z0 y1x2z1 y1x2z2 y1x2z3 y1x2z4   
Y1X3 y1x3z0 y1x3z1 y1x3z2 y1x3z3 y1x3z4   
Y1X4 y1x4z0 y1x4z1 y1x4z2 y1x4z3 y1x4z4   
Y2X0 y2x0z0 y2x0z1 y2x0z2 y2x0z3 y2x0z4   
Y2X1 y2x1z0 y2x1z1 y2x1z2 y2x1z3 y2x1z4   
Y2X2 y2x2z0 y2x2z1 y2x2z2 y2x2z3 y2x2z4   
Y2X3 y2x3z0 y2x3z1 y2x3z2 y2x3z3 y2x3z4   
Y2X4 y2x4z0 y2x4z1 y2x4z2 y2x4z3 y2x4z4   
Y3X0 y3x0z0 y3x0z1 y3x0z2 y3x0z3 y3x0z4   
Y3X1 y3x1z0 y3x1z1 y3x1z2 y3x1z3 y3x1z4   
Y3X2 y3x2z0 y3x2z1 y3x2z2 y3x2z3 y3x2z4   
Y3X3 y3x3z0 y3x3z1 y3x3z2 y3x3z3 y3x3z4   
Y3X4 y3x4z0 y3x4z1 y3x4z2 y3x4z3 y3x4z4   
Y4X0 y4x0z0 y4x0z1 y4x0z2 y4x0z3 y4x0z4   
Y4X1 y4x1z0 y4x1z1 y4x1z2 y4x1z3 y4x1z4   
Y4X2 y4x2z0 y4x2z1 y4x2z2 y4x2z3 y4x2z4   
Y4X3 y4x3z0 y4x3z1 y4x3z2 y4x3z3 y4x3z4   
Y4X4 y4x4z0 y4x4z1 y4x4z2 y4x4z3 y4x4z4 
三维表格(表3-2)

看上去三维表格和二维表格的差别并不大,这主要是因为我们无法在平面上彻底实现一个三维表格的原因,所以我们就把多个(其中的一维元素的数量)二维表格(剩余的两维所组成的表格)按一定的顺序排列下来。对照索引表3-1,仔细观察表3-2我们就会发现,在Y轴坐标上分别由Y0、Y1、Y2、Y3、Y4开头的行各有5个(
 
Y0X0 Y0X1 Y0X2 Y0X3 Y0X4 
 
Y1X0 Y1X1 Y1X2 Y1X3 Y1X4 
 
Y2X0 Y2X1 Y2X2 Y2X3 Y2X4 
 
Y3X0 Y3X1 Y3X2 Y3X3 Y3X4 
 
Y4X0 Y4X1 Y4X2 Y4X3 Y4X4 

),之所以有5个是因为该Y坐标上的X轴坐标也有5个元素(X0、X1、X2、X3、X4),而表3-2中的5个列也是因为Z轴坐标有5个元素(Z0、Z1、Z2、Z3、Z4)的原因。
其实这就好像我们把一个面包(三维表格),按照长度(某个维度,比如说Z轴)切成多个薄片(二维表格)。
在三维表格中我们引入了索引表的概念,其实这个索引表是可有可无的。在真正的使用中,为求简便我们可以直接绘制如表3-2那样的三维表格。

4 三维表格的绘制和使用
三维表格的绘制和使用和二维表格基本相同,我们先来看一个最简单的三维表格,表3-4表示的就是一个基本单位的正方体,而索引表3-3则表示一个基本单位的正方形:
 
YX X0 X1   
Y0 Y0X0 Y0X1   
Y1 Y1X0 Y1X1 

(表3-3)

 
YXZ轴 Z0 Z1   
Y0X0     
Y0X1     
Y1X0     
Y1X1   

(表3-4)
现在我们增加这个表的X轴坐标至X2,如索引表(表3-5)中蓝色部分即为X轴增加的部分,其实就是增加了正方体的长度。
 
YX X0 X1 X2   
Y0 Y0X0 Y0X1 Y0X2   
Y1 Y1X0 Y1X1 Y1X2 


(表3-5)
那么在三维表格中我们同样增加了索引表中的Y0X2 和Y1X2,见表3-6。
 
YXZ轴 Z0 Z1   
Y0X0     
Y0X1     
Y1X0     
Y1X1     
Y0X2     
Y1X2   
(表3-6)
现在我们又增加了Y轴坐标之Y2 如索引表(表3-7)中绿色部分。其实就是增加了长方体的宽。
 
YX X0 X1 X2   
Y0 Y0X0 Y0X1 Y0X2   
Y1 Y1X0 Y1X1 Y1X2   
Y2 Y2X0 Y2X1 Y2X2 
(表3-7)
 
YXZ轴 Z0 Z1   
Y0X0     
Y0X1     
Y1X0     
Y1X1     
Y0X2     
Y1X2     
Y2X0     
Y2X1     
Y2X2   

(表3-8)
那么在三维表格中我们同样要增加Y2X0、Y2X1、Y2X2,如表3-8中绿色部分。
 
YXZ轴 Z0 Z1 Z2   
Y0X0      
Y0X1      
Y1X0      
Y1X1      
Y0X2      
Y1X2      
Y2X0      
Y2X1      
Y2X2    


(表3-9)
如果我们还想增加三维表格中Z轴坐标的话,我们可以直接(其实刚才也可以直接添加)增加三维表格表3-9的列。如上表中黄色的部分就是我们增加的列。
通过上面的使用流程来看,三维表格的使用并不是很难。
5 表中表与立体三维图纸
当然我们还有一种内嵌式三维表格这种表格——表中表,就是说在单元格里还有一个表,只不过这个表还是一个一维的表格罢了。如表(3-10)
 
YXZ X0 X1   
Y0 Y0X0Z0 Y0X0Z1 Y0X1Z0 Y0X1Z1   
Y1 Y1X0Z0 Y1X0Z1 Y1X1Z0 Y1X1Z1 
(表3-10)
表中表这种方式的缺点是,第三维度不能随意地增加或者减少,使用起来灵活度不高,不过他的优点是一目了然,对于显示数据来说是非常友好的。
根据表中表的原理,我们设计出了,比较实用的《三维表格绘制法》,如图3-1:这种表格绘制简单方便,立体感强,非常适合做施工图和电路图。

图3-1

6 四维表格
四维表格和其他多维表格在现实中使用的比较少,由于他们的原理和三维、二维差不多,所以我们这里简单的介绍一下:
表4-1就是一个简单的四维表格。而表4-2则是四维表格的另一种绘制方法。
从表4-2,我们发现行和列各占两维度即2维×2维 = 4维。
 
ZYXS坐标 S0 S1   
Z0 Y0 X0     
Z0 Y0 X1     
Z0 Y1 X0     
Z0 Y1 X1     
Z1 Y0 X0     
Z1 Y0 X1     
Z1 Y1 X0     
Z1 Y1 X1   
表4-1
 
ZYXS X0 S0 X0 S1 X1 S0 X1 S1   
Z0Z0       
Z0Y1       
Z1Y0       
Z1Y1     
表4-2.
7多维表格的应用
多维表格尤其是三维表格,在数据存储和分析以及图纸绘制方面具有更加人性化的特点。比如三维影视虚拟技术,GPS全球定位技术等。而四维表格则可以很好地记录历史。
另外对于普通的关系型数据库而言,这种多维表示法将更加适合专业数据的存储。

 

好像不允许直接粘贴图片哈! 这样我给他放到下载中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值