3
sympy에서 기호 행렬 함수를 만들고 numpy로 평가하기 위해 lambdify하고 싶습니다. 내가 f (x) = x를 먹이는 것과 똑같은 것을 반환하는 간단한 함수를 시도해 보겠습니다. 그러나 결국에는 행렬의 흔적을 취하거나 무언가를 좋아하는 것을 좋아합니다.sympy.lambdify에 상징적 행렬 전달
x는 sympy.Symbol 때 그것은 괜찮아요 :
import sympy as sy
from sympy import Matrix, MatrixSymbol
x = sy.Symbol('x')
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # returns Matrix([[3]])
그러나 여기서 x는 sympy.MatrixSymbol하지 때
import sympy as sy
from sympy import Matrix, MatrixSymbol
x = sy.MatrixSymbol('x', 2, 2)
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # should return Matrix((3,)), right?
그것은 저에게 말한다 :
lambda() takes no arguments (1 given)
감사합니다 어떤 아이디어 나 조언을 구하십시오!
나는 이것이 버그라고 말하고 싶습니다. https://github.com/sympy/sympy/issues/new에서 문제를 열 수 있습니다. – asmeurer
autowrap이 이미 원하는 것을 지원할 수 있습니다. 다음은 추적을 보여주는 테스트입니다. https://github.com/sympy/sympy/blob/e8d101572c2a4632427ee7daf937a70b4a124404/sympy/external/tests/test_autowrap.py#L59 – moorepants