tips001

データの構造を変える①
— Flip Matrix

Sets ▸ Tree ▸ Flip Matrix

たくさんのリストの、縦と横を入れ替えるコンポーネント。
3リスト×4項目が、4リスト×3項目になる

左のパネルが Flip Matrix を通す前、右が通したあと。クリックで拡大。

データ構造の変化について

Before3リスト × 4項目

{0}11121314
{1}21222324
{2}31323334

After4リスト × 3項目

{0}112131
{1}122232
{2}132333
{3}142434

{0} はリストの通し番号で、パスと呼ぶ。
元のリストから n 番目だけを集め直すので、リストの本数と1本あたりの項目数が入れ替わる。
番号は {0} から振り直される

使用例

横1列につないだ点を、縦につなぎ変える。

上(オレンジ)が Flip Matrix なし、下(青)が Flip Matrix あり。左から入ってくるのは上の図の 11…34。2つの Rhino 画面は同じ画角・同じ縮尺。クリックで拡大。

点は1つも動いていない。
つなぐ相手が入れ替わるだけで、線の走る向きが変わる。

注意

リストごとの項目数が不揃いだと、足りない分は null で埋まる。
2個/3個/4個の3リストを通すと出力は4リストで、{2} = null, 23, 33{3} = null, null, 34
パスが2か所以上で違うとき({0;0}{1;1} が混ざる場合)はエラーになり、All paths may only differ at a single locus が出る。
違いが1か所だけなら({0;0}{1;0})そのまま通る。

#データツリー