Функция динамического манипулирования в Wolfram?

Я пишу демонстрацию цифрового графического интерфейса для проектирования аналоговых фильтров. Поскольку демонстрации позволяют использовать только одну функцию Manipulate, есть ли способ динамически обновлять элементы управления Manipulate?

Бывший. У меня есть 4 различных типа фильтров (НЧ, ВЧ, полосовой, полосовой), для первых двух требуется только два частотных входа, а для последних двух требуется четыре частотных входа. Есть ли способ переключаться между двумя ползунками Manipulate и четырьмя в зависимости от того, какой режим был выбран без вложения Manipulates? В качестве альтернативы я могу иметь все четыре и затенить два, когда они не нужны?


person Corey McGrath    schedule 17.10.2018    source источник


Ответы (1)


Вот пример динамически изменяющихся элементов управления Manipulate, которые легко модифицировать для достижения желаемого. Я его не писал и не помню где видел.

Manipulate[
 {x, yyy},
 {{x, a}, {a, b, c, d}, None},
 {{yyy, 0.5}, 0, 1, None},
 {{type, 1}, Range@3, None},
 PaneSelector[{
   1 -> Column[{
      Control@{x, {a, b, c, d}, RadioButtonBar},
      Control@{{yyy, 0.5}, 0, 1},
      Control@{type, Range@3}
      }],
   2 -> Column[{
      Control@{x, {a, b, c, d}, SetterBar},
      Control@{yyy},
      Control@{type, Range@3}
      }],
   3 -> Column[{
      Control@{x, {a, b, c, d}, PopupMenu},
      Control@{{yyy, 0.5}, 0, 1},
      Control@{type, Range@3}
      }]
   }, Dynamic@type]     
]
person Rohit Namjoshi    schedule 18.10.2018