私の目標は、sympifyを使用して文字列を記号式に変換し、置換することです。
import sympy as sp
Eq_Str = 'a*x+b'
Eq_Sym = sp.sympify(Eq_Str)
次に、たとえば、a
他のものに置き換えます。
Eq_Sym.subs(a,2)
しかし、エラーが発生します:
Traceback (most recent call last):
File "<ipython-input-5-e9892d6ffa06>", line 1, in <module>
Eq_Sym.subs(a,2)
NameError: name 'a' is not defined
a
ワークスペースに記号がないことを理解しました。私は正しいですか?取得したセットからEq_Sym.free_symbols
ワークスペースにシンボルを取得して、で置換できるようにする方法はありEq_Sym
ますか?
お時間を割いていただき、誠にありがとうございます。
あなたはそのために使うことができますglobals()
:
import sympy as sp
Eq_Str = 'a*x+b'
Eq_Sym = sp.sympify(Eq_Str)
for s in Eq_Sym.free_symbols :
globals()[s.name] = s;
print (Eq_Sym.subs(a,2)); #b + 2*x
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加