atan和atan2的区别-Matlab三角函数
一句话总结:
atan2(a,b)是4象限反正切,它的取值不仅取决于a/b的atan值,还取决于点 (b, a) 落入哪个象限
当点(b, a) 落入第一象限时,atan2(a,b)的范围是 0 ~ pi/2;
当点(b, a) 落入第二象限时,atan2(a,b)的范围是 pi/2 ~ pi;
当点(b, a) 落入第三象限时,atan2(a,b)的范围是 -pi/2~0;
当点(b, a) 落入第四象限时,atan2(a,b)的范围是 -pi~-pi/2
atan(a/b) 是2象限反正切,即a/b的atan值
当 a/b > 0 时,atan(a/b)取值范围是 0 ~ pi/2;
当 a/b < 0 时,atan(a/b)取值范围是 -pi/2~0
atan2(a,b)详细解释:
语法
P = atan2(Y,X)
说明
示例
P = atan2(Y,X)
返回 Y
和 X
的四象限反正切 (tan-1),该值必须为实数。atan2
函数遵循当 x
在数学上为零(或者为 0
或 -0
)时 atan2(x,x)
返回 0
的约定。
示例
计算点的四象限反正切
尝试此示例Copy Command Copy Code
计算点 y = 4
、x = -3
的四象限反正切。
atan2(4,-3)
ans = 2.2143
将复数转换为极坐标
尝试此示例Copy Command Copy Code
将 4 + 3i
转换为极坐标。
z = 4 + 3i; r = abs(z)
r = 5
theta = atan2(imag(z),real(z))
theta = 0.6435
半径 r
和角 theta
是 4 + 3i
的极坐标表示形式。
或者,使用 angle
计算 theta
。
theta = angle(z)
theta = 0.6435
将 r
和 theta
转换回原始复数。
z = r*exp(i*theta)
z = 4.0000 + 3.0000i
绘制四象限反正切图
尝试此示例Copy Command Copy Code
绘制 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
- y 坐标
标量 | 向量 | 矩阵 | 多维数组
y 坐标,指定为标量、向量、矩阵或多维数组。输入 Y
和 X
必须具有相同的大小或具有兼容的大小(例如,Y
是一个 M
×N
矩阵,X
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
X
- x 坐标
标量 | 向量 | 矩阵 | 多维数组
x 坐标,指定为标量、向量、矩阵或多维数组。输入 Y
和 X
必须具有相同的大小或具有兼容的大小(例如,Y
是一个 M
×N
矩阵,X
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single
| double
详细信息
全部折叠
四象限反正切
四象限反正切 atan2(Y,X)
基于图形中所示的 Y 和 X 的值返回闭区间 [-pi,pi]
中的值。
相比之下,atan(Y/X)
返回的结果仅限于区间 [-pi/2,pi/2]
,如图的右侧所示。
IEEE 合规性
对于实数输入,atan2
的一些行为不同于 IEEE®-754 标准中推荐的行为。
MATLAB® | IEEE | |
---|---|---|
atan2(0,-0)
|
|
|
atan2(-0,-0)
|
|
|
atan(a,b)详细解释:
语法
Y = atan(X)
说明
Y = atan(X)
以弧度为单位返回 X
各元素的 反正切 (tan-1)。该函数同时接受实数和复数输入。
对于
X
的实数值,atan(X)
返回区间 [-π/2, π/2] 中的值。对于
X
的复数值,atan(X)
返回复数值。
示例
值的反正切
尝试此示例Copy Command Copy Code
求值的反正切。
atan(0.8)
ans = 0.6747
复数值向量的反正切
尝试此示例Copy Command Copy Code
计算向量 x
的各元素的反正切。atan
函数按元素处理 x
。
x = [0.5i 1+3i -2.2+i]; Y = atan(x)
Y = 1×3 complex0.0000 + 0.5493i 1.4615 + 0.3059i -1.2019 + 0.1506i
绘制反正切函数
尝试此示例Copy Command Copy Code
在区间 −20≤x≤20 上绘制反正切函数。
x = -20:0.01:20; plot(x,atan(x)) grid on
输入参数
X
- 角正切
标量 | 向量 | 矩阵 | 多维数组
角正切,指定为标量、向量、矩阵或多维数组。如果 X
为非标量,则按元素执行 atan
运算。
数据类型: single
| double
复数支持: 是
详细信息
反正切
反正切定义为
tan−1(z)=i2log(i+zi−z).
atan和atan2的区别-Matlab三角函数相关推荐
- python中 math模块下 atan 和 atan2的区别
atan 和 atan2 都是反正切函数,返回的都是弧度 对于两点形成的直线,两点分别是 point(x1,y1) 和 point(x2,y2),其斜率对应角度的计算方法可以是: angle = at ...
- atan与atan2的区别
相比较ATan,ATan2究竟有什么不同?本篇介绍一下ATan2的用法及使用条件. 对于tan(θ) = y / x: θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]. θ ...
- C语言math.h库函数中atan与atan2的区别
今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点.想到使用斜率来计算角度,于是联想到数学公式中的 ...
- c语言math.atan,C语言math.h库函数中atan与atan2的区别
今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点.想到使用斜率来计算角度,于是联想到数学公式中的 ...
- Matlab 函数atan 函数atan2 的区别
double atan( double x ); //计算x的反正切值 double atan2 ( double y, double x ); //计算y/x的反正切值
- [转载] numpy.arctan, math.atan, math.atan2的区别
参考链接: Python中的numpy.arctan2 numpy.arctan与math.atan的结果的取值范围是一样的,是从-90度到90度,而math.atan2的结果的取值范围是从-180到 ...
- numpy.arctan, math.atan, math.atan2的区别
numpy.arctan与math.atan的结果的取值范围是一样的,是从-90度到90度,而math.atan2的结果的取值范围是从-180到180度.所以当你需要的结果是需要超出-90度到90度的 ...
- C语言中两个反正切函数atan与atan2的区别
我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.as中有两个函数可以计算反正切,我们来看一下. 1.as中Math.atan() M ...
- c语言atan的作用,C语言中的atan和atan2
在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x) 他们返回的值是弧度 要转化为角度再自己处理下. 前者 ...
- MATLAB中atan与atan2角度讲解
atan2求的是一个点所对应的角的大小 ,且输出角度范围是[-π, π] atan求的是一个数值对应的角,且输出角度范围是[-π/2, π/2] 例如: atan(1)=0.7854 atan(1,1 ...
最新文章
- 【机器学习】集成学习之stacking
- 第57课 鸡兔同笼-2021.10.12
- Python问题记录:如何处理中文网页中的多余空格
- 编译安装postfix+sasl+mysql+dovecot+extmail构建完成的邮件系统(一)
- 计算机表格中需要乘法求和,《怎么在Excel表格里面使用乘法求和》
- python是什么意思怎么读-python怎么读,python是什么意思
- 单片机入门 - 模电、数电与单片机
- 随感10-Transecndence超验骇客
- html图片幻灯片怎么做,纯CSS3制作满屏图像幻灯片
- Java日期时间主要API:java.time.Duration类和java.time.Period类
- 初识Uniprot API
- 小虎电商浏览器:淘数据店铺数据分析如何?数据精确吗?
- 【机器视觉】圆形测量
- 如何比较两个文本的相似度
- 企业微信—JS-SDK使用(例:预览文件接口)
- Android代码混淆工具Proguard学习
- 电子学会2023年3月青少年软件编程(图形化)等级考试试卷(二级)真题,含答案解析
- SAP 如何把科目快速扩充到所有公司
- Xv6操作系统导论(第三章)
- ARM指令英文全称及功能