Main Content

sph2cartvec

Convert vector from spherical basis components to Cartesian components

Description

vr = sph2cartvec(vs,az,el) converts the components of a vector or set of vectors, vs, from their spherical basis representation to their representation in a local Cartesian coordinate system. A spherical basis representation is the set of components of a vector projected into the right-handed spherical basis given by (e^az,e^el,e^R). The orientation of a spherical basis depends upon its location on the sphere as determined by azimuth, az, and elevation, el.

example

Examples

collapse all

Start with a vector in a spherical basis located at 45° azimuth, 45° elevation. The vector points along the azimuth direction. Compute the vector components with respect to Cartesian coordinates.

vs = [1;0;0];
vr = sph2cartvec(vs,45,45)
vr = 3×1

   -0.7071
    0.7071
         0

Input Arguments

collapse all

Vector in spherical basis representation specified as a 3-by-1 column vector or 3-by-N matrix. Each column of vs contains the three components of a vector in the right-handed spherical basis (e^az,e^el,e^R).

Example: [4.0; -3.5; 6.3]

Data Types: double
Complex Number Support: Yes

Azimuth angle in degrees, specified as a scalar in the closed range [–180, 180]. To define the azimuth angle of a point on a sphere, construct a vector from the origin to the point. The azimuth angle is the angle in the xy-plane from the positive x-axis to the vector's orthogonal projection into the xy-plane. As examples, zero azimuth angle and zero elevation angle specify a point on the x-axis while an azimuth angle of 90° and an elevation angle of zero specify a point on the y-axis.

Example: 45

Data Types: double

Elevation angle in degrees, specified as a scalar in the closed range [–90, 90]. To define the elevation of a point on the sphere, construct a vector from the origin to the point. The elevation angle is the angle from its orthogonal projection into the xy-plane to the vector itself. As examples, zero elevation angle defines the equator of the sphere and ±90° elevation define the north and south poles, respectively.

Example: 30

Data Types: double

Output Arguments

collapse all

Cartesian vector returned as a 3-by-1 column vector or 3-by-N matrix having the same dimensions as vs. Each column of vr contains the three components of the vector in the right-handed x,y,z basis.

More About

collapse all

Spherical basis representation of vectors

Spherical basis vectors are a local set of basis vectors which point along the radial and angular directions at any point in space.

The spherical basis is a set of three mutually orthogonal unit vectors (e^az,e^el,e^R) defined at a point on the sphere. The first unit vector points along lines of azimuth at constant radius and elevation. The second points along the lines of elevation at constant azimuth and radius. Both are tangent to the surface of the sphere. The third unit vector points radially outward.

The orientation of the basis changes from point to point on the sphere but is independent of R so as you move out along the radius, the basis orientation stays the same. The following figure illustrates the orientation of the spherical basis vectors as a function of azimuth and elevation:

For any point on the sphere specified by az and el, the basis vectors are given by:

e^az=sin(az)i^+cos(az)j^e^el=sin(el)cos(az)i^sin(el)sin(az)j^+cos(el)k^e^R=cos(el)cos(az)i^+cos(el)sin(az)j^+sin(el)k^   .

Any vector can be written in terms of components in this basis as v=vaze^az+vele^el+vRe^R. The transformations between spherical basis components and Cartesian components take the form

[vxvyvz]=[sin(az)sin(el)cos(az)cos(el)cos(az)cos(az)sin(el)sin(az)cos(el)sin(az)0cos(el)sin(el)][vazvelvR]

.

and

[vazvelvR]=[sin(az)cos(az)0sin(el)cos(az)sin(el)sin(az)cos(el)cos(el)cos(az)cos(el)sin(az)sin(el)][vxvyvz].

Extended Capabilities

Version History

Introduced in R2013a