Four-quadrant inverse tangent
Syntax
Description
example
P = atan2(Y,X) returns the four-quadrant inverse tangent (tan-1) of Y and X, which must be real. The atan2 function follows the convention that atan2(x,x) returns 0 when x is mathematically zero (either 0 or -0).
Examples
collapse all
Find Four-Quadrant Inverse Tangent of a Point
Find the four-quadrant inverse tangent of the point y = 4, x = -3.
Convert Complex Number to
Polar Coordinates
Convert 4 + 3i into polar coordinates.
theta = atan2(imag(z),real(z))
The radius r and the angle theta are the polar coordinate representation of 4 + 3i.
Alternatively, use angle to calculate theta.
Convert r and theta back into the original complex number.
Plot Four-Quadrant Inverse Tangent
Plot atan2(Y,X) for -4<Y<4 and -4<X<4.
Define the interval to plot over.
[X,Y] = meshgrid(-4:0.1:4,-4:0.1:4);
Find atan2(Y,X) over the interval.
Use surf to generate a surface plot of the function. Note that plot plots the discontinuity that exists at Y=0 for all X<0.
surf(X,Y,P); view(45,45);
Input Arguments
collapse all
Y — y-coordinates
scalar | vector | matrix | multidimensional array
y-coordinates, specified as a scalar, vector, matrix, or multidimensional array. Inputs Y and X must either be the same size or have sizes that are compatible (for example, Y is an M-by-N matrix and X is a scalar or 1-by-N row vector). For more information, see Compatible Array Sizes for Basic Operations.
Data Types: single | double
X — x-coordinates
scalar | vector | matrix | multidimensional array
x-coordinates, specified as a scalar, vector, matrix, or multidimensional array. Inputs Y and X must either be the same size or have sizes that are compatible (for example, Y is an M-by-N matrix and X is a scalar or 1-by-N row vector). For more information, see Compatible Array Sizes for Basic Operations.
Data Types: single | double
More About
collapse all
Four-Quadrant Inverse Tangent
The four-quadrant inverse tangent, atan2(Y,X), returns values in the closed interval [-pi,pi] based on the values of Y and X, as shown in the graphic.
In contrast, atan(Y/X) returns results that are limited to the interval [-pi/2,pi/2], shown on the right side of the diagram.
IEEE Compliance
For real inputs, atan2 has a few behaviors that differ from those recommended in the IEEE®-754 Standard.
atan2(0,-0) | 0 | pi |
atan2(-0,-0) | 0 | -pi |
Extended Capabilities
Tall Arrays
Calculate with arrays that have more rows than fit in memory.
This function fully supports tall arrays. For more information, see Tall Arrays.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool.
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
Version History
Introduced before R2006a