7

例:2次元配列は、正方形のレンガを使用したレンガの壁のように視覚化できます。ここで、すべてのレンガは配列内の座標を表します。3次元配列は、同じ方法でボックスまたは立方体として視覚化できます。

しかし、ここで注意が必要な部分があります。複数(3つ以上)の次元を持つ配列をどのように視覚化しますか?または、その部分について、複数の次元だけでなく、複数のレイヤーに複数の次元がある配列をどのように視覚化しますか?

例:Array [3,3,3,3] [3,3] [3,3,3,3,3] [3]のような配列をどのように視覚化しますか?

4

13 に答える 13

12

アレイをどのように視覚化するかは、実際の使用方法によって異なります。空間関係に配列を使用している場合は、それを立方体として想像することでメリットが得られますが、3次元以上を想像する必要もなくなります。本当にそして本当に4番目の時間ディメンションを実装したい場合は、時間の経過とともに内容が変化するキューブを想像することができます。

そうしないと、強く関連するレコードを追跡している可能性があります。おそらく、最初の要素のそれぞれは銀河であり、2番目のレベルの要素は星団であり、3番目のレベルの要素は太陽系であり、4番目のレベルの要素は惑星であり、5番目のレベルの要素は大陸です...

この場合、それが配列内の配列であると想像できます。4次元配列が必要な場合は、キューブを想像できますが、各サブキューブは実際には1次元配列です。

5次元配列が必要な場合は、立方体を想像できますが、各サブ立方体は「レンガの壁」の例に分割されています。

6次元は立方体であり、各サブ立方体は独自の分割された立方体です。

これは6次元後にバラバラになる傾向があります。これを超えて、通常、非常に多くの次元が必要になるというより実際的な理由があります。たとえば、eHarmonyのようなWebサイトは、20次元以上の空間で通常のジオメトリを使用してマッチメイキングを行います。「ユーモア」、「美貌」、「買い物の愛」の1つの次元があります...次に、2人を取り、距離の式を適用できます(各次元の違いを二乗し、これらの違いを追加し、平方根)そして、2人の互換性を判断します。したがって、ある人が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次元配列として想像することができます。この配列を単純化できる理由は、多次元配列には1つの「1」しか含まれておらず、残りはすべて「0」(この配列内の人物の位置を示す)であるためです。

eHarmonyの例から離れると、要点は、一定量の次元の後、通常、配列を認識する方法に役立つ配列の実用的な目的があるということです。

于 2010-11-19T00:43:15.300 に答える
5

少なくとも単純な形状に関しては、n> 3のn次元ジオメトリを精神的にモデル化できる人もいれば、できない人もいます。(最近、高度なn次元幾何学の分野の誰かと話をして、彼が超立方体を視覚化できないことを知り、私は非常に驚きましたが、彼の数学は私をはるかに超えています)。

しかし、それは本当に必要ではありません。実際、デカルト座標として2次元配列を視覚化する必要があることはめったにありません。実際に2次元配列を使用している場合、各軸に何らかの目的があり、その目的は視覚的表現よりもすぐに重要になります。

必要な場合は、2次元配列も1次元構造の順序集合と見なすことができると考えてください。同様に、3次元配列は、順序付けられた2次元構造のセット、または1次元のセットのセットと見なすことができます(これらの同じサイズのセットを使用すると、異なるサイズで問題をギザギザの配列に移動できます)。

したがって、4次元配列は、順序付けられた3次元構造のセットなどと見なすことができます。

于 2010-11-19T00:41:50.653 に答える
4

あなたはそうしない。2次元または3次元以上が必要になることはめったにありません。それ以上が必要な場合は、代わりに追加のディメンションをオブジェクトのプロパティとしてモデル化する必要があります。その場合、それらを属性として表示でき、神話上の超立方体を想像することはできません。

于 2010-11-19T00:29:50.377 に答える
4

多次元データを視覚化するための素敵な方法はたくさんあります。私のお気に入りの1つは、AlfredInselbergのParallelCoordinatesです。これは、各次元を垂直軸として表し、各データポイントをそれらすべてを接続するスレッドとして表します。

代替テキスト

もう1つの優れた視覚化は、Ramana Raoのテーブルレンズ(pdf)です。

代替テキスト

これは、スプレッドシートのように各ディメンションを列として表しますが、数値ではなくグラフで表します。次元間の相関関係を示すのに特に優れています。1つのディメンションで並べ替えると、相関ディメンションがどのように並べ替えられるかを簡単に確認できます。

于 2010-11-19T01:35:10.187 に答える
3

それについて減法してみてください。たとえば、10次元の配列を想像する必要がある場合は、すべての有限の非負の整数nに対するすべてのn次元の実数値のユークリッドベクトル空間のセットを想像することから始めます。{R0、R1、R2、...}

ここで、R10だけを残して、そのほとんどすべてを取り除くことを想像してみてください。

ここで、そのほとんどすべてを取り除いて、R10の整数の格子点だけを残すことを想像してみてください。

ここで、そのほとんどすべてを取り除いて、整数格子点の超長方形のサブセットだけを作成することを想像してみてください。

これで完了です。これは、10次元配列の優れた視覚化です。考えられるすべてのn次元ベクトル空間のセットのサブセットとして考えると、非常に小さいです。

高次元空間の主題に興味がある場合は、高次元ベクトル空間データベースの検索アルゴリズムに関するいくつかの興味深い事実についての私の穏やかな紹介を読むことをお勧めします。

http://blogs.msdn.com/b/ericlippert/archive/tags/high+dimension+spaces/

于 2010-11-19T01:18:58.340 に答える
1

3次元を超える場合、唯一のオプションはツリービューまたはドリルダウンです。

于 2010-11-19T00:29:53.547 に答える
1

4つの空間次元を視覚化するのと同じ方法:「スライス」、重ね合わせ、またはすでに理解していて視覚化できるものに投影します。

于 2010-11-19T00:31:18.117 に答える
1

すべての余分な次元を「囲み箱」と考えてください。2D配列を1D配列の配列、3D配列を2D配列の配列などと考えてください。

下記は用例です...

1D 1x2アレイ:

[ 1, 2 ]

2D 2x2アレイ:

{ [ 1, 2 ], [ 3, 4 ] }
{ [ 5, 6 ], [ 7, 8 ] }

3D 2x2x2アレイ:

( { [ 1, 2 ], [ 3, 4 ] }, { [ 5, 6 ], [ 7, 8 ] } )
( { [ 9, 0 ], [ 1, 2 ] }, { [ 3, 4 ], [ 5, 6 ] } )
于 2010-11-19T00:48:39.140 に答える
1

財務レポートを、データがスプレッドシート形式で複数のエンティティから入ってくる配列として視覚化できます。

  • 売上データの単一のスプレッドシートは2D配列になります(たとえば、利益センターごとの四半期の各月の売上)。
  • ワークブックの複数のタブ(子会社ごとに1つ)は3D配列になります。

次に、グローバル統合の目的で、コントローラーは各リージョンからワークブックを受け取る場合があります。これは4次元になります。5番目のディメンションは、時間の経過に伴う販売データを操作する必要がある場合(たとえば、傾向を見つけるため)、「時間」である可能性があります。

理論的には、単一の5D配列変数に複数年、複数地域の売上データを保持できます。

人々が上で言ったように、あなたは本当に最初にアプリケーションを念頭に置く必要があります、そして次に論理的なデータ構造は適切な物理的な形を定義するのを助けます。リレーショナルにモデル化できる属性のセットはすべて、通常どおり配列に配置できます。

トニー

于 2016-09-05T14:35:06.487 に答える
0

4D配列を立方体の1D配列として視覚化します。立方体の2D配列としての5D配列。そして、立方体の3D配列、または立方体の立方体としての6D配列。立方体の立方体などの1D配列としての7D配列。

于 2010-11-19T00:42:17.973 に答える
0

これらの次元が必要かどうかを無視して、4D配列を「立方体」の1D配列(線)として想像してみませんか。(つまり、各要素が3Dキューブを指す1D配列)。これは、必要に応じてスケールアップできます(つまり、各要素が立方体を指す2Dサーフェス)。もちろん、これはハイパーキューブが「見える」方法ではありませんが、必須ではありません。

于 2010-11-19T00:43:57.720 に答える
0

タブ:)

3次元データのタブは4次元を提供し、タブのタブはn次元を提供します。

それは必ずしもそれを視覚化するための最良の方法ではありません。また、どの次元でも回転するのには適していません。

しかし、それはあなたが視覚化しようとしているものに依存します

たとえば、RGBを2Dマップに変換してから立方体に投影すると、4D情報が得られます。

于 2010-11-19T00:44:06.067 に答える
0

ここでファームを提供するつもりはありませんが、これは私がPHPで多次元配列をどのように見ているかの一例です。

$ map [room] [x] [y] [z] [id] [photopath] [flag1] [flag2]

3D空間のポイントとしてどのように見えるかを想像し、並べ替え属性を追加するだけです。ここで、Doom 3をプレイしていると想像してください。各マップは、x、y、z座標のピクセルを持つ部屋に分割できます。これらの各ポイントには、オブジェクトID(モンスター、アイテムなど)を関連付けることができます。アプリケーションに属性を追加しましたが、基本的にはこれです。配列内のポイントは、必ずしも幾何学的に正確である必要はありません。それはどんな意味も持つことができます。これが他の人と似ているかどうかはわかりません。gdグラフィックライブラリを使用すると、多次元配列の優れたビジュアライザーがオンザフライで作成されることは知っていますが、前回このクライアントで作業していたときは、そのプロジェクトにアクセスできませんでした。

于 2013-02-13T22:56:49.393 に答える