Julia 如何将辛表达式转换为多项式?
我想把一个symphy表达式,例如Julia 如何将辛表达式转换为多项式?,julia,sympy,pycall,Julia,Sympy,Pycall,我想把一个symphy表达式,例如x+y(x=symbols(“x”),对于y,也是这样)改成一个多项式,然后得到这个多项式的生成器和这个多项式的长度 我试过了 op=x+y op = op[:as_poly](domain="C") op_a = op.x[:gens] nab = op[:length]() 但它似乎不起作用 我得到的错误是: ERROR: MethodError: no method matching getindex(::Sym, ::Symbol) Closest c
x+y
(x=symbols(“x”)
,对于y
,也是这样)改成一个多项式,然后得到这个多项式的生成器和这个多项式的长度
我试过了
op=x+y
op = op[:as_poly](domain="C")
op_a = op.x[:gens]
nab = op[:length]()
但它似乎不起作用
我得到的错误是:
ERROR: MethodError: no method matching getindex(::Sym, ::Symbol)
Closest candidates are:
getindex(::Sym, ::Sym...) at /Users/midow/.julia/packages/SymPy/1Cwgd/src/utils.jl:18
getindex(::Number) at number.jl:75
getindex(::Number, ::Integer) at number.jl:77
...
Stacktrace:
[1] top-level scope at REPL[11]:1
正如@phipsgabler提到的,接口从
getindex
更改为getproperty
so
using SymPy
x=symbols("x")
y=symbols("y")
op = op.as_poly(domain="C")
op_a = op.x.gens
nab = op.length()
应该给你想要的。嗨@Marouane1994!我修正了您的代码格式,并尝试改进文本的某些部分。请确保我没有更改任何相关部分的含义。我从未使用过
PyCall
,但我们最近在Julia中得到了getproperty
重载。可能getindex
接口已被弃用?您是否尝试过类似于op.as_poly(domain=“C”)
?