如何使用ModelingToolkit.jl动态创建变量

How to use ModelingToolkit.jl to create variables dynamically

主要问题是我的变量只有在运行代码之后才能确定(因为变量的数量不固定)。

在旧版本ModelingToolkit.jl中,我使用了以下代码来生成一个变量。

my_var = Variable(Symbol(name))(t)  # name is a string

但是,它在最新版本中无法使用。这是错误。

ERROR: Sym name is not callable. Use @syms name(var1, var2,...) to create it as a callable.

我检查过 SymbolicUtils.jl 但没有找到其他用法。我该如何解决这个问题?

您也可以使用 @variables 宏在运行时创建符号变量。 $ 运算符插入运行时值。

julia> using ModelingToolkit

julia> z = :abc;

julia> k = @variables $z
1-element Vector{Num}:
 abc

julia> k[1]
abc