Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

sph2cart

将球面坐标转换为笛卡尔坐标

说明

示例

[x,y,z] = sph2cart(azimuth,elevation,r) 将球面坐标数组 azimuthelevationr 的对应元素转换为笛卡尔坐标,即 xyz 坐标。

示例

全部折叠

将矩阵 azelr 中对应项定义的球面坐标转换为笛卡尔坐标 xyz。这些点对应于立方体的八个顶点。

az = [0.7854 0.7854 -0.7854 -0.7854; 2.3562 2.3562 -2.3562 -2.3562]
az = 2×4

    0.7854    0.7854   -0.7854   -0.7854
    2.3562    2.3562   -2.3562   -2.3562

el = [0.6155 -0.6155 0.6155 -0.6155; 0.6155 -0.6155 0.6155 -0.6155]
el = 2×4

    0.6155   -0.6155    0.6155   -0.6155
    0.6155   -0.6155    0.6155   -0.6155

r = 1.7321*ones(2,4)
r = 2×4

    1.7321    1.7321    1.7321    1.7321
    1.7321    1.7321    1.7321    1.7321

[x,y,z] = sph2cart(az,el,r)
x = 2×4

    1.0000    1.0000    1.0000    1.0000
   -1.0000   -1.0000   -1.0000   -1.0000

y = 2×4

    1.0000    1.0000   -1.0000   -1.0000
    1.0000    1.0000   -1.0000   -1.0000

z = 2×4

    1.0001   -1.0001    1.0001   -1.0001
    1.0001   -1.0001    1.0001   -1.0001

输入参数

全部折叠

方位角,指定为标量、向量、矩阵或多维数组。azimuthelevationr 必须具有相同的大小或具有兼容的大小(例如,azimuth 是一个 M×N 矩阵,elevation 以标量,r 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

azimuth 是在 x-y 平面上从 x 轴的正向测量的逆时针角度(以弧度为单位)。

数据类型: single | double
复数支持:

仰角,指定为标量、向量、矩阵或多维数组。azimuthelevationr 的大小必须相同,或具有兼容的大小。

elevation 是与 x-y 平面之间形成的仰角(以弧度为单位)。

数据类型: single | double
复数支持:

半径,指定为标量、向量、矩阵或多维数组。azimuthelevationr 的大小必须相同,或具有兼容的大小。

r 的长度单位可以使用任意值,而且输出数组 xyz 使用相同的单位。

数据类型: single | double
复数支持:

输出参数

全部折叠

笛卡尔坐标,以数组形式返回。

算法

从球面坐标到三维笛卡尔坐标的映射为

x = r .* cos(elevation) .* cos(azimuth)
y = r .* cos(elevation) .* sin(azimuth)
z = r .* sin(elevation)

Figure shows a point plotted in 3-D space with X and Y in the horizontal plane and Z along the vertical axis. The point has a radius measured from the origin, an azimuthal angle measured in relation to X in the horizontal plane, and an elevation angle measured as elevation above the XY plane.

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| |