atan2
固定小数点値の 4 象限逆正接
説明
例
固定小数点入力値の逆正接の計算
関数 atan2
を使用して、符号なしおよび符号付きの固定小数点入力値の逆正接を計算します。
符号なしの入力値
この例では、符号なしの 16 ビットの語長値を使用します。
y = fi(0.125,0,16); x = fi(0.5,0,16); z = atan2(y,x)
z = 0.2450 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 16 FractionLength: 15
符号付きの入力値
この例では、符号付きの 16 ビットの語長値を使用します。
y = fi(-0.1,1,16); x = fi(-0.9,1,16); z = atan2(y,x)
z = -3.0309 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
入力引数
y
— y 座標
スカラー | ベクトル | 行列 | 多次元配列
y 座標。スカラー、ベクトル、行列または多次元配列として指定します。
y
および x
には、実数値で符号付きまたは符号なしのスカラー、ベクトル、行列、または固定小数点型の角度の値をラジアン単位で含む N
次元配列を使用できます。入力 y
および x
は同じサイズでなければなりません。サイズが異なる場合は、少なくともどちらか一方の入力がスカラー値でなければなりません。y
と x
の有効なデータ型は次のとおりです。
fi
singlefi
double2 進小数点スケーリングが指定されている
fi
固定小数点2 進小数点スケーリングが指定されている、スケーリングされた
fi
double
データ型: fi
x
— x 座標
スカラー | ベクトル | 行列 | 多次元配列
x 座標。スカラー、ベクトル、行列または多次元配列として指定します。
y
および x
には、実数値で符号付きまたは符号なしのスカラー、ベクトル、行列、または固定小数点型の角度の値をラジアン単位で含む N
次元配列を使用できます。入力 y
および x
は同じサイズでなければなりません。サイズが異なる場合は、少なくともどちらか一方の入力がスカラー値でなければなりません。y
と x
の有効なデータ型は次のとおりです。
fi
singlefi
double2 進小数点スケーリングが指定されている
fi
固定小数点2 進小数点スケーリングが指定されている、スケーリングされた
fi
double
データ型: fi
出力引数
z
— 4 象限逆正接
スカラー | ベクトル | 行列 | 多次元配列
4 象限逆正接。スカラー、ベクトル、行列または多次元配列として返されます。
z
は y
と x
の 4 象限逆正接です。z
の numerictype
は、次のように y
と x
の符号属性に依存します。
y
またはx
が符号付きの場合、z
は範囲 [–pi,pi] の符号付き固定小数点数です。語長は 16 ビット、小数部の長さは 13 ビットとなります (numerictype(1,16,13)
) 。y
とx
の両方が符号なしの場合、z
は範囲 [0,pi/2] の符号なしの固定小数点数です。語長は 16 ビット、小数部の長さは 15 ビットとなります (numerictype(0,16,15)
) 。
出力 z
は常に既定の fimath
に関連付けられています。
詳細
4 象限逆正接
4 象限逆正接は関数 atan
に対して次のように定義されます。
アルゴリズム
関数 atan2
は、次のように 8 ビット ルックアップ テーブルを使用して、固定小数点の入力の 4 象限逆正接を計算します。
入力絶対値を除算し、0 ~ 1 の範囲にある符号なしの 16 ビット小数固定小数点の比を算出します。y と x の絶対値によって除数となる値が決まります。
入力
y
およびx
の符号によって、各入力の比がどの象限に含まれるかが決まります。絶対値が大きい方の入力が分母として使用されるため、得られる値は 0 から 1 の範囲になります。符号なしの 16 ビット格納整数値を使用して、次のようにテーブル インデックスを計算します。
最上位 8 ビットを使用して、テーブルの最初の値を取得します。
その次に大きいテーブルの値を 2 番目の値として使用します。
最下位 8 ビットを使用して、最近傍線形内挿によって最初と 2 番目の値の間を内挿します。この内挿により、[0, pi/4) の範囲の値が得られます。
y
およびx
の元の入力値に基づいて得られた角度に対して、八分円補正を実行します。
この逆正接の計算は、入力の最上位 16 ビットの範囲内でのみ正確です。
fimath の伝播ルール
関数 atan2
は、入力に追加されたすべての fimath
を無視して破棄します。出力 z
は常に既定の fimath
に関連付けられています。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2012a で導入
参考
atan2
| sin
| angle
| cos
| cordicatan2
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)