How to | 式をDynamicやManipulateの中で評価する方法
これらの例題の性質上,出力の中にはファイルに保存されないものもある.これらの例題を理解するためには,読み進みながらそれぞれの入力を評価することをお勧めする.
| Out[2]= |  |
次の入力では,最初のスライダーが動的に数字のリストの値を変え,2番目のスライダーが2番目の値を変更する,というふうに順に変更を行うようなスライダーのリストを作成する.
このようなスライダーのリストを
Table等を使ってもっと簡単に作成したい場合があるかもしれない.
Dynamicの
HoldFirst属性が邪魔になって
Table変数の値が式に使われるのを妨げることがある.したがってこの試みは失敗し,
numbers[[1]],
numbers[[2]]等の代りに文字通り
numbers[[i]]が現れることになる.
iのシンタックスカラーリングがこの危険があることを警告していることに注目されたい:
Out[4]//InputForm= |
| |  |
この問題を克服するために,スコープ構文である
Withを使って局所変数
iのすべての場合をその対応する値で即座に置き換えることができる:
Out[5]//InputForm= |
| |  |
InputFormラッパーを取り除くことによってフォーマットされたスライダーを得ることができる:
| Out[7]= |  |
いくつかのコントロールをまとめて構築する際に,同じ方法を
Manipulateでも取ることができる.以下は最初のスライダーが他にいくつのスライダーを表示するかを指定する
Manipulateである.他のスライダーは見やすいように
Panelでラップされている.ここでもスライダーを作成する
Tableの中で
Withが使用されていることに注目されたい:
以下は同じような例で,データの変数に関連するチェックボックスの数が他の
Manipulateコントロールの値に基づいて変化するというものである:
指標付きのコントロールを持つ
Manipulateを構築する:
指標付きのコントロールに必要な構造を直接構築することによって,任意数のコントロールを持つ
Manipulateを構築することもできる.この場合は,
Block を使って
xの任意の大域的な定義がこれらの構造的な操作を邪魔することがないようにする:
| Out[11]= |  |