如何使用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
主要问题是我的变量只有在运行代码之后才能确定(因为变量的数量不固定)。
在旧版本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