2012-05-14 2 views
1

Функция Манипуляции Mathematica принимает в качестве своих окончательных аргументов отдельные списки параметров, которые вы хотите использовать слайдеры, наряду с их диапазонами значений. Но почему не список списков? Таким образом, я мог, я легко генерировать все ползунки для этого большого списка правил преобразования, которые у меня есть, например:Генерация манипулятора «ползунки» на лету

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} 

Это Теперь я копирую между ячейками, что довольно беспорядочно. Я уверен, что есть лучший способ сделать это. Пожалуйста, помогите, спасибо!

+1

Пожалуйста, обратите внимание на сайт [Mathematica-SE] (http://mathematica.stackexchange.com/) для более/лучше/более быстрые ответы на ваши вопросы, связанные с ММА. – kglr

ответ

3

См. this и this по аналогичным вопросам.

Вам нужно, чтобы [email protected]@ получил список списков, которые будут рассматриваться как ваш желаемый результат при использовании в качестве входных данных.

Может быть что-то вроде:

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]] 

который дает

enter image description here

+0

Спасибо большое! Это именно тот тип общего решения, которое я надеялся получить. – Extrapolator

+0

@Big_bodySmall_heart, рад помочь. – kglr

Смежные вопросы