本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

atan2

四象限反正切

说明

示例

P = atan2(Y,X) 返回 YX四象限反正切 (tan-1),该值必须为实数。atan2 函数遵循当 x 在数学上为零(或者为 0-0)时 atan2(x,x) 返回 0 的约定。

示例

全部折叠

计算点 y = 4x = -3 的四象限反正切。

atan2(4,-3)
ans = 2.2143

4 + 3i 转换为极坐标。

z = 4 + 3i;
r = abs(z)
r = 5
theta = atan2(imag(z),real(z))
theta = 0.6435

半径 r 和角 theta4 + 3i 的极坐标表示形式。

或者,使用 angle 计算 theta

theta = angle(z)
theta = 0.6435

rtheta 转换回原始复数。

z = r*exp(i*theta)
z = 4.0000 + 3.0000i

绘制 atan2(Y,X)(对于 -4<Y<4-4<X<4)。

定义要在其上绘制的区间。

[X,Y] = meshgrid(-4:0.1:4,-4:0.1:4);

计算 atan2(Y,X) 在此区间上的值。

P = atan2(Y,X);

使用 surf 生成函数的曲面图。请注意,plot 绘制存在于 Y=0 的不连续性(对于所有 X<0)。

surf(X,Y,P);
view(45,45);

输入参数

全部折叠

y 坐标,指定为标量、向量、矩阵或多维数组。输入 YX 必须具有相同的大小或具有兼容的大小(例如,Y 是一个 M×N 矩阵,X 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

数据类型: single | double

x 坐标,指定为标量、向量、矩阵或多维数组。输入 YX 必须具有相同的大小或具有兼容的大小(例如,Y 是一个 M×N 矩阵,X 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

数据类型: single | double

详细信息

全部折叠

四象限反正切

四象限反正切 atan2(Y,X) 基于图形中所示的 YX 的值返回闭区间 [-pi,pi] 中的值。

相比之下,atan(Y/X) 返回的结果仅限于区间 [-pi/2,pi/2],如图的右侧所示。

IEEE 合规性

对于实数输入,atan2 的一些行为不同于 IEEE®-754 标准中建议的行为。

  MATLAB® IEEE
atan2(0,-0)

0

pi

atan2(-0,-0)

0

-pi

扩展功能

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

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

另请参阅

| | | |

在 R2006a 之前推出