Main Content

atan2

説明

P = atan2(Y,X)Y および X (どちらも実数でなければならない) の 4 象限逆正接 (tan-1) を返します。関数 atan2 は、x が数学的にゼロ (0 または -0) である場合に atan2(x,x)0 を返すという規則に従います。

すべて折りたたむ

y = 4x = -3 の点の 4 象限逆正接を求めます。

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

-4<Y<4 および -4<X<4atan2(Y,X) をプロットします。

プロットする区間を定義します。

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

区間の atan2(Y,X) を求めます。

P = atan2(Y,X);

surf を使用して関数の表面プロットを生成します。plot では Y=0X<0 のすべての不連続点がプロットされることに注意してください。

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

Figure contains an axes object. The axes object contains an object of type surface.

入力引数

すべて折りたたむ

y 座標。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。入力 YX は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、YMN 列の行列で、X がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | table | timetable

x 座標。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。入力 YX は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、YMN 列の行列で、X がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | table | timetable

詳細

すべて折りたたむ

4 象限逆正接

4 象限逆正接 atan2(Y,X) は、次の図に示すように、Y および X の値に基づいて閉区間 [–π, π] の値を返します。

Values returned by atan2(Y,X). For negative X and negative Y, atan2(Y,X) returns values in the interval (–π, –π/2). For positive X and negative Y, atan2(Y,X) returns values in the interval (–π/2, 0). For positive X and positive Y, atan2(Y,X) returns values in the interval (0, π/2). For negative X and positive Y, atan2(Y,X) returns values in the interval (π/2, π)

一方、atan(Y/X) が返す結果は、図の右側に示す区間 [–π/2, π/2] に限られます。

IEEE 準拠

実数入力の場合、atan2 の動作の一部が IEEE®-754 Standard で推奨されている動作とは異なります。

  MATLAB® IEEE
atan2(0,-0)

0

pi

atan2(-0,-0)

0

-pi

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| | | |