Python 如何在symphy中对矩阵元素进行舍入?

Python 如何在symphy中对矩阵元素进行舍入?,python,rounding,sympy,Python,Rounding,Sympy,如我们所知 from sympy import * x = sin(pi/4) y = sin(pi/5) A = Matrix([x, y]) print(x) print(A.evalf()) 显示 sqrt(2)/2 Matrix([[0.707106781186548], [0.587785252292473]]) 0.707 0.588 所以 显示 sqrt(2)/2 Matrix([[0.707106781186548], [0.587785252292473]]) 0

如我们所知

from sympy import *

x = sin(pi/4)
y = sin(pi/5)

A = Matrix([x, y])

print(x)
print(A.evalf())
显示

sqrt(2)/2
Matrix([[0.707106781186548], [0.587785252292473]])
0.707
0.588
所以

显示

sqrt(2)/2
Matrix([[0.707106781186548], [0.587785252292473]])
0.707
0.588
但是,我们怎样才能以简洁的方式将矩阵中的所有元素四舍五入,从而

print(roundMatrix(A, 3))
can显示器

Matrix([[0.707], [0.588]])

为什么不将方法evalf与参数一起使用,如
evalf(3)

输出

sqrt(2)/2
Matrix([[0.707], [0.588]])

可能您误解了
evalf
。例如,
a=Rational(100,2)+0.00001
那么你怎么看
a.evalf(3)
?我要的是
50000
?不,它是
50.0
evalf
在这种情况下工作正常。调用a.evalf(3)返回3位有效数字而不是点后3位。要在点写入
a.evalf(5)
后获得3个数字,您将获得
50.000