我刚开始使用Mathematica并遇到了一个问题。我希望能够更优雅地解决它。我有一个形如{x,y,z}
的测量数据,并想将其转换为球坐标。我知道可以使用简单的函数来完成这个任务。但是代码变得很丑陋。
我希望有一个类似于:
v={x,y,z}
TranformSpherical[v]
我查阅了文档,只找到了版本9的内容,我正在使用版本8,但尝试时没有起作用。我在其他地方也没有找到清晰的解决方案。希望这里有人知道问题的简单解决方法。
我刚开始使用Mathematica并遇到了一个问题。我希望能够更优雅地解决它。我有一个形如{x,y,z}
的测量数据,并想将其转换为球坐标。我知道可以使用简单的函数来完成这个任务。但是代码变得很丑陋。
我希望有一个类似于:
v={x,y,z}
TranformSpherical[v]
我查阅了文档,只找到了版本9的内容,我正在使用版本8,但尝试时没有起作用。我在其他地方也没有找到清晰的解决方案。希望这里有人知道问题的简单解决方法。
ArcTan[x, y]
函数,它可以计算四象限反正切值。更多信息请参见关于atan2的文章。在9版本中
CoordinateTransformData["Cartesian" -> "Spherical", "Mapping", {x, y, z}]
这段代码给出了三个球坐标系参数与{x,y,z}之间的关系:{Sqrt[x^2 + y^2 + z^2], ArcTan[z, Sqrt[x^2 + y^2]], ArcTan[x, y]},分别对应球面半径、极角和方位角。
CoordinateTransform["Cartesian" -> "Spherical", {x, y, z}]
使用CoordinateTransform可以得到相同的结果,还可以用于转换。 如果您有一个笛卡尔坐标列表{{x0,y0,z0},{x1,y1,z1},...},您可以像这样应用CoordinateTransform
cartesianList = RandomReal[{0, 1}, {4, 3}];
CoordinateTransform["Cartesian" -> "Spherical", #] & /@ cartesianList
在早期版本中
<< Calculus`VectorAnalysis`
SetCoordinates[Spherical]