3

我刚开始使用 Mathematica,遇到了一个问题。我想更优雅地解决。我有{x,y,z}表格中的测量数据,并希望将这些数据转换为球坐标。我知道如何使用简单的功能来做到这一点。但是代码变得丑陋。我想要类似的东西:

v={x,y,z}
TranformSpherical[v]

我查看了文档,只找到了版本 9 的内容,我使用的是 8,但在我尝试时它不起作用。此外,我还没有在其他任何地方找到明确的解决方案。希望这里有人知道一个简单的解决方案。

4

2 回答 2

2

在版本 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 网站页面上有一个用于球坐标的笔记本。接近开头是您正在做的事情的一个例子。

于 2013-03-05T18:26:29.373 回答
2

这些方程式在 Wikipedia 上给出,是简单的函数评估。是什么阻止你简单地计算它们,它是如何变得丑陋的?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

确保ArcTan[x, y]在计算四象限反正切的 Mathematica 中使用。有关详细信息,请参阅有关 atan2 的文章

于 2013-03-05T01:09:03.323 回答