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 および x には、実数値で符号付きまたは符号なしのスカラー、ベクトル、行列、または固定小数点型の角度の値をラジアン単位で含む N 次元配列を使用できます。入力 y および x は同じサイズでなければなりません。サイズが異なる場合は、少なくともどちらか一方の入力がスカラー値でなければなりません。y と x の有効なデータ型は次のとおりです。
fisinglefidouble2 進小数点スケーリングが指定されている
fi固定小数点2 進小数点スケーリングが指定されている、スケーリングされた
fidouble
データ型: fi
x 座標。スカラー、ベクトル、行列または多次元配列として指定します。
y および x には、実数値で符号付きまたは符号なしのスカラー、ベクトル、行列、または固定小数点型の角度の値をラジアン単位で含む N 次元配列を使用できます。入力 y および x は同じサイズでなければなりません。サイズが異なる場合は、少なくともどちらか一方の入力がスカラー値でなければなりません。y と x の有効なデータ型は次のとおりです。
fisinglefidouble2 進小数点スケーリングが指定されている
fi固定小数点2 進小数点スケーリングが指定されている、スケーリングされた
fidouble
データ型: fi
出力引数
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 象限逆正接は関数 atan に対して次のように定義されます。
アルゴリズム
関数 atan2 は、次のように 8 ビット ルックアップ テーブルを使用して、固定小数点の入力の 4 象限逆正接を計算します。
入力絶対値を除算し、0 ~ 1 の範囲にある符号なしの 16 ビット小数固定小数点の比を算出します。y と x の絶対値によって除数となる値が決まります。
入力
yおよびxの符号によって、各入力の比がどの象限に含まれるかが決まります。絶対値が大きい方の入力が分母として使用されるため、得られる値は 0 から 1 の範囲になります。
符号なしの 16 ビット格納整数値を使用して、次のようにテーブル インデックスを計算します。
最上位 8 ビットを使用して、テーブルの最初の値を取得します。
その次に大きいテーブルの値を 2 番目の値として使用します。
最下位 8 ビットを使用して、最近傍線形内挿によって最初と 2 番目の値の間を内挿します。この内挿により、[0, pi/4) の範囲の値が得られます。
yおよびxの元の入力値に基づいて得られた角度に対して、八分円補正を実行します。
この逆正接の計算は、入力の最上位 16 ビットの範囲内でのみ正確です。
関数 atan2 は、入力に追加されたすべての fimath を無視して破棄します。出力 z は常に既定の fimath に関連付けられています。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2012a で導入
参考
atan2 | sin | angle | cos | cordicatan2
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)