Main Content

divide

2 つの fi オブジェクトの除算

説明

c = divide(T,a,b) は、a の要素に対して b の要素による除算を実行します。結果の cnumerictype オブジェクト T により指定された数値型をもちます。

すべて折りたたむ

この例では、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 オブジェクトとして指定します。

分子。スカラー、ベクトル、行列または多次元配列として指定します。

入力 ab は、同じサイズであるか、互換性のあるサイズでなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
複素数のサポート: あり

分母。実数のスカラー、ベクトル、行列または多次元配列として指定します。

入力 ab は、同じサイズであるか、互換性のあるサイズでなければなりません。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
複素数のサポート: あり

出力引数

すべて折りたたむ

解。スカラー、ベクトル、行列または多次元配列として返されます。

c のサイズは ab の次元の暗黙的な拡張で決まります。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

アルゴリズム

すべて折りたたむ

a および b が両方とも fi オブジェクトである場合、c は、a と同じ fimath オブジェクトをもちます。cfiFixed データ型をもち、入力のどちらか一方が fi 浮動小数点データ型をもつ場合、fi の浮動小数点は固定小数点値に変換されます。中間量は、afimath オブジェクトを使用して計算されます。

ab のいずれかが 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 のデータ型

組み込み double

組み込み double

任意

組み込み double

fi Fixed

fi Fixed

fi Fixed

numerictype オブジェクト T のデータ型

fi Fixed

fi Fixed

fi double

fi double

fi Fixed

fi Fixed

fi single

fi single

fi Fixed

fi Fixed

fi ScaledDouble

fi numerictype オブジェクト T のプロパティをもつ ScaledDouble

fi double

fi double

fi Fixed

fi double

fi double

fi double

fi double

fi double

fi double

fi double

fi single

fi single

fi double

fi double

fi ScaledDouble

fi double

fi single

fi single

fi Fixed

fi single

fi single

fi single

fi double

fi double

fi single

fi single

fi single

fi single

fi single

fi single

fi ScaledDouble

fi single

fi ScaledDouble

fi ScaledDouble

fi Fixed

入力 a または b のいずれかの型が fi ScaledDouble の場合、出力 c の型は fi ScaledDouble になり、numerictype オブジェクト T のプロパティをもちます。

fi ScaledDouble

fi ScaledDouble

fi double

fi double

fi ScaledDouble

fi ScaledDouble

fi single

fi single

fi ScaledDouble

fi ScaledDouble

fi ScaledDouble

入力 a または b のいずれかの型が fi ScaledDouble の場合、出力 c の型は fi ScaledDouble になり、numerictype オブジェクト T のプロパティをもちます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する