我用的是sympy(它太棒了),我刚刚做了一个向量场,像这样
> import sympy
> from sympy.vector import CoordSys3D
> from sympy import *
> R = CoordSys3D('R')
> x, y, z, t = symbols('x y z t')
> v = x*R.i + 4*z*R.j + y*R.k
x*R.i + 4*z*R.j + y*R.k
> v.evalf(subs={x:6, y:5, z:2})
6.00000000000000*R.i + 8.00000000000000*R.j + 5.00000000000000*R.k
我需要的是得到一个向量或列表的形式[6.0,8.0,5.0],那么有没有办法得到一个列表形式v.evalf()
?我可以在"6.00000000000000*R.i + 8.00000000000000*R.j + 5.00000000000000*R.k"
上使用split或其他方法,但这看起来很难看,也许有一个内置的方法
其他可能性包括
但我认为,当一个或多个组件等于0时,它们会暴露出致命的缺陷。例如,如果
z
设置为0:然后
list(vector.to_matrix(R))
仍然返回3个组件:另外两个表达式省略了零分量:
相关问题 更多 >
编程相关推荐