# How to programmatically create symbolic variable names in Symbolics.jl

**URL:** <https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948>\
**Category:** General Usage\
**Tags:** symbolics\
**Created:** [April 1, 2023, 2:15pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948 "2023-04-01T14:15:10Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pluie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pluie/32/35949_2.png) [@pluie](https://discourse.julialang.org/u/pluie)\
**Post date:** [April 1, 2023, 2:15pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/1 "2023-04-01T14:15:10Z")

</div>

Essentially, I am looping over indices and I need to use those indices to create symbolic variable names.

A simplified version of what I am trying to do as shown using SymPy:

```julia
vars=[]
for i=1:5
   for j=2:7
       push!(vars,symbols("x$i$j"))
   end
end

```

In actuality, the indices are all coming from a list so it is not straightforward to program using for loops.

The only method for defining symbolic variables I can find for Symbolics.jl is

```julia
@variables x1

```

Does anyone have suggestions for how I can incorporate the x$i symbolic variable construction in Symbolics? Thank you.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 1, 2023, 3:59pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/2 "2023-04-01T15:59:59Z")

</div>

@variables $x

---

<div class="post-metadata">

**Author:** ![pluie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pluie/32/35949_2.png) [@pluie](https://discourse.julialang.org/u/pluie)\
**Post date:** [April 1, 2023, 4:58pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/3 "2023-04-01T16:58:05Z")

</div>

Can you elaborate? Is x supposed to be assigned as something beforehand?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 1, 2023, 6:32pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/4 "2023-04-01T18:32:38Z")

</div>

yes it’s interpolating in a name.

---

<div class="post-metadata">

**Author:** ![pluie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pluie/32/35949_2.png) [@pluie](https://discourse.julialang.org/u/pluie)\
**Post date:** [April 1, 2023, 6:33pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/5 "2023-04-01T18:33:56Z")

</div>

I’ve tried different formulations but can’t seem to figure out what the requirements on x are. Can you show an example of how x is defined before `@variables $x`?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 2, 2023, 2:30am UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/6 "2023-04-02T02:30:56Z")

</div>

`x = :myvar`

---

<div class="post-metadata">

**Author:** ![cadojo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cadojo/32/25328_2.png) [@cadojo](https://discourse.julialang.org/u/cadojo)\
**Post date:** [December 26, 2023, 4:39pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/7 "2023-12-26T16:39:53Z")

</div>

I have struggled to add a time dependency in this way. Is this supported?

```julia

julia> @variables t x(t)
2-element Vector{Num}:
    t
 x(t)

julia> ẋ = Symbol(:Δ, Symbol(Symbolics.value(x)))
Symbol("Δx(t)")

julia> @variables $ẋ
1-element Vector{Num}:
 var"Δx(t)"

julia> Δx
ERROR: UndefVarError: `Δx` not defined

```

I can accomplish this by leaving _out_ the time dependency, and adding it back later…

```julia
julia> ẋ = :Δx
:Δx

julia> @eval @variables $(ẋ)(t)
1-element Vector{Num}:
 Δx(t)

julia> Δx
Δx(t)
```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [December 26, 2023, 5:58pm UTC](https://discourse.julialang.org/t/how-to-programmatically-create-symbolic-variable-names-in-symbolics-jl/96948/8 "2023-12-26T17:58:16Z")

</div>

Oh, that’s not intended. Open an issue.
