divide
2 つの fi オブジェクトの除算
説明
例
この例では、divide 関数の精度を制御する方法を説明します。
表現の先行する 1 を最上位ビットに配置する、語長 80 ビット、スケーリング 2^-83 の符号なし fi オブジェクトを作成します。値 0.1 でオブジェクトを初期化し、2 進数表現を確認します。
P = fipref('NumberDisplay', 'bin',... 'NumericTypeDisplay', 'short',... 'FimathDisplay', 'none'); a = fi(0.1, 0, 80, 83)
a =
11001100110011001100110011001100110011001100110011010000000000000000000000000000
numerictype(0,80,83)
IEEE® 標準の倍精度浮動小数点数の仮数は 52 ビットであるため、無限に繰り返す表現は、52 ビットの後切り捨てられます。
上記を、上記と同じ数値型に設定された商を使用した、固定小数点演算での 1/10 の計算と比較します。
T = numerictype('Signed', false,... 'WordLength', 80,... 'FractionLength', 83); a = fi(1); b = fi(10); c = divide(T, a, b); c.bin
ans = '11001100110011001100110011001100110011001100110011001100110011001100110011001101'
関数 divide を使用した場合、a および b の精度に関係なく、商は完全に 80 ビットまで計算されます。このため、fi オブジェクト c は、IEEE® 標準の倍精度浮動小数点数が表現できるよりも、正確に 1/10 を表現します。
入力引数
出力の数値型。numerictype オブジェクトとして指定します。
分子。スカラー、ベクトル、行列または多次元配列として指定します。
入力 a と b は、同じサイズであるか、互換性のあるサイズでなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
複素数のサポート: あり
分母。実数のスカラー、ベクトル、行列または多次元配列として指定します。
入力 a と b は、同じサイズであるか、互換性のあるサイズでなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
複素数のサポート: あり
出力引数
解。スカラー、ベクトル、行列または多次元配列として返されます。
c のサイズは a と b の次元の暗黙的な拡張で決まります。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
アルゴリズム
a および b が両方とも fi オブジェクトである場合、c は、a と同じ fimath オブジェクトをもちます。c が fi の Fixed データ型をもち、入力のどちらか一方が fi 浮動小数点データ型をもつ場合、fi の浮動小数点は固定小数点値に変換されます。中間量は、a の fimath オブジェクトを使用して計算されます。
a、b のいずれかが fi オブジェクトで、他方が MATLAB® の組み込み数値型の場合、その組み込みオブジェクトは最高精度の小数部の長さを維持したままで fi オブジェクトの語長にキャストされます。中間量は、入力 fi オブジェクトの fimath オブジェクトを使用して計算されます。
a および b が両方とも MATLAB の組み込み double である場合、c は浮動小数点の商 a./b であり、numerictype T は無視されます。
Fixed-Point Designer™ ソフトウェアが numerictype オブジェクト T を使用するための構文の場合、関数 divide は、下の表のデータ型の伝播に関する規則に従います。多くの場合、浮動小数点データ型は伝播されます。このため、固定小数点と浮動小数点の両方の入力に使用できるコードを書くことができます。
| 入力 fi オブジェクト a および b のデータ型 | numerictype オブジェクト T のデータ型 | 出力 c のデータ型 | |
|---|---|---|---|
組み込み | 組み込み | 任意 | 組み込み |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| fi single |
|
|
|
|
|
|
|
|
|
|
|
|
| 入力 |
|
|
|
|
|
|
|
|
|
|
| 入力 |
拡張機能
使用上の注意および制限:
fi以外の入力は定数でなければなりません。つまり、fiオブジェクトにキャストできるよう、その値がコンパイル時に既知でなければなりません。複素数と虚数の除数はサポートされていません。
コード生成は、構文
T.divide(a,b)をサポートしません。
HDL コード生成では、除数は定数かつ 2 のべき乗でなければなりません。
fi以外の入力は定数でなければなりません。つまり、その値がfiオブジェクトにキャストできるように、コンパイル時に既知にしなければなりません。複素数と虚数の除数はサポートされていません。
MATLAB でのコード生成では、構文
T.divide(a,b)はサポートされていません。
バージョン履歴
R2006a より前に導入R2022a から fi の divide に対する暗黙的な拡張が追加されたことにより、それまで基本演算でエラーを返していた一部の引数の組み合わせで結果が出力されるようになりました。
コードで要素単位の演算子を使用し、以前 MATLAB の返していたサイズの不一致エラーに依存している場合 (特に try/catch ブロック内)、コードは今後、これらのエラーをキャッチしなくなることがあります。
基本的な配列演算に必要な入力サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。
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)