我刚开始使用 Mathematica,遇到了一个问题。我想更优雅地解决。我有{x,y,z}
表格中的测量数据,并希望将这些数据转换为球坐标。我知道如何使用简单的功能来做到这一点。但是代码变得丑陋。我想要类似的东西:
v={x,y,z}
TranformSpherical[v]
我查看了文档,只找到了版本 9 的内容,我使用的是 8,但在我尝试时它不起作用。此外,我还没有在其他任何地方找到明确的解决方案。希望这里有人知道一个简单的解决方案。
我刚开始使用 Mathematica,遇到了一个问题。我想更优雅地解决。我有{x,y,z}
表格中的测量数据,并希望将这些数据转换为球坐标。我知道如何使用简单的功能来做到这一点。但是代码变得丑陋。我想要类似的东西:
v={x,y,z}
TranformSpherical[v]
我查看了文档,只找到了版本 9 的内容,我使用的是 8,但在我尝试时它不起作用。此外,我还没有在其他任何地方找到明确的解决方案。希望这里有人知道一个简单的解决方案。
在版本 9
CoordinateTransformData["Cartesian" -> "Spherical", "Mapping", {x, y, z}]
给你 {Sqrt[x^2 + y^2 + z^2], ArcTan[z, Sqrt[x^2 + y^2]], ArcTan[x, y]}
用 {x,y,z} 表示三个球坐标
CoordinateTransform["Cartesian" -> "Spherical", {x, y, z}]
会给你同样的东西,但也可以用于转换。如果你有一个笛卡尔坐标列表 {{x0,y0,z0},{x1,y1,z1},...},你可以像这样应用 CoordinateTransform
cartesianList = RandomReal[{0, 1}, {4, 3}];
CoordinateTransform["Cartesian" -> "Spherical", #] & /@ cartesianList
在早期版本中
<< Calculus`VectorAnalysis`
SetCoordinates[Spherical]
在 mathworld.wolfram.com 网站页面上有一个用于球坐标的笔记本。接近开头是您正在做的事情的一个例子。
这些方程式在 Wikipedia 上给出,是简单的函数评估。是什么阻止你简单地计算它们,它是如何变得丑陋的?
确保ArcTan[x, y]
在计算四象限反正切的 Mathematica 中使用。有关详细信息,请参阅有关 atan2 的文章。