0

我希望能够获取一个索引对象,用值代替它的索引,但仍然记得它的原始索引。

from sympy.tensor import IndexedBase, Idx
C = IndexedBase("C")
i,j = Idx("i"), Idx("j") 
expr = C[i,j]
expr = expr.subs({i:1, j:2})

是否可以从 expr 中获取原始索引 (i,j)?由于表达式是不可变的,我对原始表达式所做的任何修改都不会出现在新表达式中。

我想这里的一般问题是如何将附加信息附加到 Sympy 符号。

4

2 回答 2

0

您可以将一般信息附加到符号,symbols('x', integer=True)但不能分配值。但是,您可以使用替换符号创建新变量。这使您的原始表达式保持不变:

newexpr = expr.subs({i:1, j:2})
于 2015-02-20T15:18:31.337 回答
0

SymPy 在执行subs. 您应该构造您的代码,以便保留原始表达式。

于 2015-02-22T20:25:57.883 回答