1

Mathematica のManipulate関数は、最終引数として、スライダーが必要なパラメーターの個別のリストとその値の範囲を受け取ります。しかし、なぜリストのリストではないのでしょうか? このようにして、私が持っている変換ルールのこの大きなリストのすべてのスライダーを簡単に生成できました。

parms = {a -> 2, b -> 4, c -> 5};
Table[{{parms[[i]][[1]], parms[[i]][[2]]}, 0, 10}, {i, 1,Length[parms]}]

{{{a, 2}, 0, 10}, {{b, 4}, 0, 10}, {{c, 5}, 0, 10}}

ただし、私が持ちたいのは次のとおりです。

{{a, 2}, 0, 10}, {{b, 4}, 0, 10}, {{c, 5}, 0, 10}

これは、かなり厄介なセル間でコピーして貼り付けています。これを行うためのより良い方法があると確信しています。助けてください、ありがとう!

4

1 に答える 1

3

同様の質問については、これこれを参照してください。

必要なのはSequence@@、入力として使用したときに目的の出力として扱われるリストのリストを取得することです。

おそらく次のようなものです:

ClearAll[a, b, c];
parms = {a -> 2, b -> 4, c -> 5}; 
With[{values = Table[parms[[i]][[1]], {i, 1, Length[parms]}],
controls = Sequence @@
 Table[{{parms[[i]][[1]], parms[[i]][[2]], 
   Style[ToString[parms[[i]][[1]]], Red, Bold]}, 0, 10}, {i, 1, 
  Length[parms]}]},
Manipulate[values, controls]]

を与える

ここに画像の説明を入力

于 2012-05-14T23:49:30.137 に答える