我想执行以下操作,我在其中输入索引并且它会吐出我想要的值。但是当我为它分配值时,它会给我带来意想不到的结果。
import sympy as sy
import numpy as np
i = sy.Symbol('i', integer=True)
j = sy.Symbol('j', integer=True)
a = sy.IndexedBase('a')
y=a[i, j]**2+3
y.subs({a:np.array([[1,2,3,4,5,6,7]]),i:0,j:4})
我希望答案是5 ** 2 + 3 = 28,但它给了我一个[0,4] ** 2 + 3.
答案 0 :(得分:0)
IndexedBase
类型似乎没有用于访问数据(而是用于表示法)。请参阅http://docs.sympy.org/latest/modules/tensor/indexed.html以下声明:
此类的主要目的是允许方便地创建Indexed类的对象。 IndexedBase的 getitem 方法返回Indexed。
的实例
也许你可以用Matrix
类型实现你想要的效果?