例如:可以将二维数组可视化为具有正方形砖块的砖墙,其中每一块砖块都表示数组中的一个坐标。三维数组可以以同样的方式可视化为长方体或立方体。
但是,这里是棘手的部分,您如何可视化具有多维(大于3维)的数组?或者,对于这一部分,您如何可视化一个不仅具有多维,而且在多个层中具有多维的数组?
例如:如何可视化如下数组: Array3,3,3,33,3,3,3,3,3
发布于 2010-11-19 08:43:15
如何可视化数组实际上取决于它们的实际用途。如果您将数组用于空间关系,那么您可以将其想象为一个立方体,但您也不需要想象超过3个维度。如果你真的真的想要实现第四个时间维度,你可以想象你的多维数据集的内容随着时间的推移而变化。
否则,您可能会跟踪强相关的记录。也许第一级元素是一个星系,第二级元素是星团,第三级元素是太阳系,第四级元素是行星,第五级元素是大陆……
在这种情况下,你可以想象它是数组中的数组。如果你需要一个4维数组,那么你可以想象一个立方体,但是每个子立方体实际上是一个一维数组。
如果你需要一个5维数组,那么你可以想象一个立方体,但是每个子立方体被分成你的“砖墙”示例。
6维是一个立方体,每个子立方体都是它自己的分割立方体。
这往往会在6个维度之后崩溃。除此之外,通常还有一个更实际的原因,即您需要这么多维度。例如,像eHarmony这样的网站通过使用20+ -dimensional spaces上的正常几何来进行匹配。你有一个维度代表“幽默”,一个维度代表“好看”,一个维度代表“爱购物”…然后,您可以将两个人应用距离公式(每个维度差异的平方,加上这些差异,平方根),并确定这两个人的兼容性。因此,如果一个人在我们的9维人格矩阵上得了"5,3,9,2,8,4,7,3,1“,而另一个人得了"9,3,7,1,8,2,8,4,7”,那么你的兼容性是:
sqrt((5-9)^2+(3-3)^2+(9-7)^2+...)
这可以应用于无限维度,并且仍然有效。然而,由于这些维度不适用于空间,因此没有必要将其可视化。相反,在这种特殊情况下,我们实际上可以将其想象为具有几个整数值的一维数组。我们可以简化这个数组的原因是,我们的多维数组只包含一个"1“,其余的都是”0“(表示人在这个数组中的位置)。
离开eHarmony的例子,要点是-在一定的维数之后,你通常会有一个实际的数组目的,它本身就是一个感知它的方法。
发布于 2010-11-19 08:41:51
一些人可以对n> 3的n维几何图形进行心理建模,至少在简单形状方面是这样,而有些人则不能。(最近,当我与一个研究高级n维几何的人交谈时,我感到非常惊讶,因为他不能想象一个超立方体,而我只能发现他的数学完全超出了我的能力范围)。
不过,这并不是真正必要的。事实上,很少有特别必要将二维数组可视化为笛卡尔坐标-当您在实践中使用二维数组时,您对每个轴都有一些用途,并且该用途很快就变得比任何可视化表示都更重要。
如果您确实需要这样做,那么考虑一下2维数组也可以看作是一维结构的有序集合。同样,三维数组可以被认为是二维结构的有序集合,或者是一维集合的集合(这些集合的大小相等-允许不同的大小将问题转移到锯齿数组中)。
因此,4维数组可以被认为是3维结构的有序集合,依此类推。
发布于 2010-11-19 08:29:50
你不需要。你甚至很少需要超过2或3个维度。如果您需要更多,那么也许应该将额外的维度建模为对象的属性,在这种情况下,您可以将它们视为属性,而不是试图想象一些虚构的超立方体。
https://stackoverflow.com/questions/4221055
复制相似问题