tips014

数値と単位⑤
— Domain

Maths ▸ Domain ▸ Construct Domain / Bounds

Domain(域)は「A から B まで」の範囲を、1つの値として持つ型。
パネルに出すと 2 To 20 のように、両端の数値が To でつながって出る。

範囲を作る

  • Construct Domain(キャンバスでの表示は Dom)の A(Domain start)に始まりの数値、B(Domain end)に終わりの数値を入れる
  • Bounds(表示は Bnd)の N(Numbers)に数値のリストを入れると、その中の最小と最大で範囲ができる
  • Deconstruct Domain(表示は DeDomain)に範囲を入れると、S(Start)と E(End)に数値が分かれて出る
緑の枠が受け取っている域は、青い枠の Bnd が出した 2 To 20。パネルの To の左が S、右が E にあたる。クリックで拡大。
Bounds に 2, 5, 9, 14, 202 To 20
その域を Deconstruct Domain へS = 2E = 20
Construct Domain に 0200 To 20

作った範囲を Remap Numbers に渡す

Remap Numbers(表示は ReMap)は、V(Value)の数値を S(Source)の範囲から T(Target)の範囲へ置き換える。
ST も Domain なので、ここで範囲の作り方を選ぶことになる。

  • S に Bounds の出力をつなぐ
  • S に Construct Domain の 0 To 20 をつなぐ
  • どちらも V は同じリスト、T は Construct Domain で作った 0 To 1
②に Dom が2つあるうち、上が S、下が T を作っているほう。右のパネルはどちらも R(Mapped)の出力。クリックで拡大。

① BoundsS = 2 To 20

20
50.166667
90.388889
140.666667
201

② Construct DomainS = 0 To 20

20.1
50.25
90.45
140.7
201

①は範囲の両端がリストの最小と最大なので、結果はかならず 01 に収まる。
②は起点が 0 に固定されているので、リストの最小がどこにあっても結果の下は 0 にならない。

元のリストが変わったとき

  • ①②のつなぎ方はそのままで、V のリストの末尾に 40 を足して6個にする

① BoundsS = 2 To 40

20
50.078947
90.184211
140.315789
200.473684
401

② Construct DomainS = 2 To 20

20.1
50.25
90.45
140.7
201
402

①は範囲が広がるので、足していない 5 や 20 の結果まで変わる。
②は範囲が動かないので、5 も 20 も前と同じ数値のまま。

使いどころ

  • リストの最小と最大をそのまま範囲にしたい = Bounds。リストが変われば範囲も変わる
  • 基準を決めて動かしたくない = Construct Domain。リストが変わっても範囲はそのまま
  • 範囲の端の数値だけ知りたい = Deconstruct Domain

注意

Bounds を使うと、リストに1個足しただけで、前から入っていた数値の結果まで変わる。警告は出ないので、数値を見るまで気づかない。
範囲の外の数値は R(Mapped)では外に出る(②の 402)。端で止めたいときは C(Clipped)を使う(ここでは 1)。

#用語