Julia使用符号变量更改循环中的名称

Julia使用符号变量更改循环中的名称,julia,sympy,symbolic-math,Julia,Sympy,Symbolic Math,我想在循环的每次迭代中更改符号变量的名称,然后使用这些符号变量求解方程,例如: using SymPy for i in 1:5 p{i} = symbols("p"{i}, real=true,positive=true) solve(p{i}^2-i^2) end 所以我想创建一系列标量符号变量(因为我认为不可能创建向量值符号变量),每个变量都有不同的名称——p1、p2、p3、p4和p5——然后在方程求解器中使用它们。然而,根据matlab,花括号符号似乎不适用于julia中的命名

我想在循环的每次迭代中更改符号变量的名称,然后使用这些符号变量求解方程,例如:

using SymPy
for i in 1:5
  p{i} = symbols("p"{i}, real=true,positive=true)
  solve(p{i}^2-i^2)
end

所以我想创建一系列标量符号变量(因为我认为不可能创建向量值符号变量),每个变量都有不同的名称——p1、p2、p3、p4和p5——然后在方程求解器中使用它们。然而,根据matlab,花括号符号似乎不适用于julia中的命名。快速的谷歌搜索并没有给出任何明显的答案。有什么想法吗?

在julia和大多数计算机语言中,如果您发现自己需要一组数字变量x1、x2、x3,您可能需要一个数组。 在julia中,这可能看起来像这样(但请注意,我不知道我在用SymPy做什么)


这里我们从pp empty开始,但类型正确;我们将每个符号推到pp的末尾;最后,我们可以使用
pp[i]
搜索pp的第i项,这几乎就是您的代码,但没有shift键。

我不确定您在这里想做什么。是否要在每次迭代时在数组
p
中存储新值?公平点。我编辑了我的问题,希望能澄清——我希望创建一些符号标量变量,然后在方程求解器中使用它们。在matlab中,当i=1引用一个名为p1的变量时,大括号用于命名循环中的变量,即p{i}。使用理解应该起作用:
xs=[symbols(“x$i”,real=true,positive=true)表示1:5中的i]
。在
solve
下有一个类似的例子,我真的被
p{I}
“p{I}
伪语法弄糊涂了。它应该是什么意思?哈,是的,我想那是因为我不知道正确的语法是什么,所以这个问题。我试图在一个循环中创建具有不同名称的新变量:p1、p2、p3等。在matlab中,这是使用所示的花括号符号()完成的。杰维扎尼的回答看起来很有帮助——我会尝试一下,然后再和大家联系。
using SymPy
pp=Sym[]
for i in 1:5
    p = symbols("x$i", real=true,positive=true)
    push!(pp,p)
    solve(pp[i]^2-i^2)
end