2016-12-11 20 views
2

私はSympyを使用する電気システムの方程式で遊んでいて、すでにかなり管理しているので、方程式はきれいに見えます。方程式の組み合わせ。 私は自分の価値を計算するために書いている文書が私が提示する最終的な文書であることを目的としているため、私は思っています。(私はJupyterノートを使用しています。SymPyとLaTeXを使用してパーセント記号を表示する方法

ここで私の問題が起こります。何とか、sympyはそれ自体でユニットではなく(実際には、それは次元がありません)、それを示すのは全く意味がないと決めました。 表示される可能性のあるパーセント記号を取り除くために私の自己宣言された単位を解析するようです...

%が次元を持たないことに同意する限り、その文字は理由のためにまだ存在します - それはまず存在しなかったでしょう。人間は百分率で乗算されていることを既に示しているので、最終的に%で読みやすいようにします。また、結果をより読みやすくします。コードで

# imports 
import sympy as sp 
from sympy import init_printing 
init_printing(use_latex=True) 
init_printing(use_latex='mathjax') 
import sympy.physics.units as u 
from IPython.display import display 

#define unit 
percent = u.Unit('ab%c', 'ab%c')*100 # a,b and c are only there for debug. Only % is needed 

#define dummy equation 
Error_= sp.symbols('Error') 
total_error = 1 # error is not yet in %. 1 means 100% 
Eq = sp.Eq(Error_, total_error*percent) 
display(Eq) 

結果:エラー= 100AB

はなぜ%の後、すべてがはっきり削除されますか?私はグローバルネームスペース内のすべてのユニットをインポートしないように注意しています。だから、%が検出されれば、%uは必要ありませんか?

PS:私はPythonを使って3日間の長い歴史を持っています。私はたいていCの男です。私は愚かなエラーを逃したことはないと思う。

答えて

3

これは私の作品:

percent = u.Unit('percent', r'\%') * 100 

おそらく%は、それは同様のLaTeXでエスケープする必要がありますようにエスケープする必要があります。

+0

あなたも歓迎です:u.percentも存在しますが、その意味は逆です:それは1/100に等しいことに注意してください(実際に 'u.percent'は' 25 * percent = = 0.25 ')。 –

関連する問題