Bazı sembolik matris hesaplamalarını semptom ile yapmaya çalışıyorum. Amacım, bazı matris hesaplamalarının sonucunun sembolik bir temsilini elde etmektir. Bu basit örneğe değinmiş olduğum bazı problemlerle karşılaştım, ki burada belirtilen bir matrisin katlanmasının sonucunu değerlendirmeye çalışıyorum ve bunu rastgele bir vektörle çarpıyorum.sympy: 'Transpose' nesnesinin listeye bir özelliği yok
Ben not ettik>>> I_ = sympy.eye(2) # directly create the identity matrix
>>> I_ == I # check the two matrices are equal
True
>>> I_ * v
v
bir şey olduğunu iki kimlik matrisler: Ben doğrudan kimlik matris oluşturmak ve sonra v ile çarpın eğer
>>> import sympy
>>> v = sympy.MatrixSymbol('v', 2, 1)
>>> Z = sympy.zeros(2, 2) # create 2x2 zero matrix
>>> I = sympy.exp(Z) # exponentiate zero matrix to get identity matrix
>>> I * v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sympy/matrices/matrices.py", line 507, in __mul__
blst = B.T.tolist()
AttributeError: 'Transpose' object has no attribute 'tolist'
Aksine, daha sonra sorun yoktur farklı sınıfların şunlardır:
>>> I.__class__
sympy.matrices.immutable.ImmutableMatrix
>>> I_.__class__
sympy.matrices.dense.MutableDenseMatrix
Ayrıca as_mutable()
yöntemi çağıran bir iş çevresinde sağlanan bulundu.
>>> I.as_mutable() * v
v
o kişinin lineer cebir hesaplamalar boyunca as_mutable()
çağrıları beklemeye her zaman gerekli midir? Tahmin edemiyorum, ve bu hatalar benim problemimi çözmek için yanlış stratejiyi kullandığımı gösteriyor, ama doğru stratejinin ne olacağını anlayamıyorum. Herhangi bir işaretçi var mı?
Immutable Matrices numaralı belge sayfasını okudum, ancak yine de standart değişebilir matrislerle arasındaki farkların burada nasıl önemli olduğunu ve bazı işlemler (örneğin, sympy.exp) bu farklı sınıflar arasında nasıl dönüştüğünü anlamak için bazı yardımı kullanabilirim.
FYI, hata artık sempinin ana dalında belirlendi. – Phillip