list - Mathematica - 初始化变量列表

标签 list variables wolfram-mathematica

我想制作一个将被初始化和可访问的变量列表。
在那种代码之后:

abc = {a, b, c}
{a, b, c} = {0, 0, 0}
abc[[1]] = 1

换句话说,我想创建一个变量列表,用零初始化它们,然后通过引用变量指示列表而不是使用单个变量的名称来更改它们。

如果你愿意

abc = {a, b, c}
Evaluate[abc[[1]]] = 1

你得到了正确的结果,即变量 a 被设置为 1。但是在第一次设置之后,你不能使用上面的方法为该变量设置另一个值。

更多详情
我想创建 SetterBars 列表,其中每个都独立于其他,我可以以某种方式存储它们的值。更重要的是,我希望它们被初始化为零。有点像

abc = {a, b, c};
Evaluate[abc] = {0, 0, 0};
Table[SetterBar[Dynamic[ abc[[i]] ],{-1,1}], {i,3}]

最佳答案

我相信这可以简化,但至少它确实有效:

     {a, b, c} = {0, 1, 0}; 
        {
          With[{abc = {Unevaluated[a], Unevaluated[b], Unevaluated[c]}}, 
               tab = Table[With[{abci = abc[[i]]}, 
                                SetterBar[Dynamic[abci], {0, 1}]], {i, 3}]; 
               tab /. Dynamic[Unevaluated[x_]] :> Dynamic[x]
          ], 
         Dynamic[{a, b, c}]
        }

关于list - Mathematica - 初始化变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741872/

相关文章:

html - 是否可以使用 css 将可变宽度的伪元素内容添加到 div 的/左侧?

javascript - 在 Javascript 中为循环声明声明 var

javascript - 词法作用域变量在 getJSON 调用中被覆盖后保留值

c++ - 如何从另一个打开的表单读取和更改主表单内的变量?

wolfram-mathematica - Mathematica 中定积分和不定积分的区别?

Python 对值进行排序并根据唯一键对它们进行分组

python - 将 Nmap 子进程中的数据直接存储到列表中

python - 一个列表理解中的两个 for 循环分别

wolfram-mathematica - 在 Mathematica 中使用上下文作为范围构造

lambda - 纯函数中的模式匹配