Main Content

convergent

最も近い偶数の整数への丸め (等距離の場合は最も近い偶数の整数に丸める)

説明

y = convergent(a)fi オブジェクト a を最も近い整数に丸めます。等距離の場合、convergent(a) は最も近い偶数の整数値に丸めます。

y = convergent(x) は、x の要素を最も近い整数に丸めます。等距離の場合、convergent(x) は最も近い偶数の整数値に丸めます。

すべて折りたたむ

次の例では、関数 convergent が、語長 8 で小数部の長さ 3 の符号付き fi オブジェクトの numerictype プロパティにどのように影響するかを示します。

a = fi(pi,1,8,3)
a = 
    3.1250

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 3
y = convergent(a)
y = 
     3

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 6
        FractionLength: 0

次の例では、関数 convergent が、語長 8 で小数部の長さ 12 の符号付き fi オブジェクトの numerictype プロパティにどのように影響するかを示します。

a = fi(0.025,1,8,12)
a = 
    0.0249

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 12
y = convergent(a)
y = 
     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 2
        FractionLength: 0

関数 convergentnearest および round では、最下位桁が 5 の値の処理方法が異なります。

  • 関数 convergent は、等距離の場合、最も近い偶数の整数に丸めます。

  • 関数 nearest は、等距離の場合、正の無限大方向に最も近い整数に丸めます。

  • 関数 round は、等距離の場合、絶対値が大きい方の最も近い整数に丸めます。

次の例は、特定の入力 a に対するこれらの違いについて示しています。

a = fi([-3.5:3.5]');
y = [a convergent(a) nearest(a) round(a)]
y = 
   -3.5000   -4.0000   -3.0000   -4.0000
   -2.5000   -2.0000   -2.0000   -3.0000
   -1.5000   -2.0000   -1.0000   -2.0000
   -0.5000         0         0   -1.0000
    0.5000         0    1.0000    1.0000
    1.5000    2.0000    2.0000    2.0000
    2.5000    2.0000    3.0000    3.0000
    3.5000    3.9999    3.9999    3.9999

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

入力引数

すべて折りたたむ

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

複素数 fi オブジェクトに対しては、虚数部と実数部は別々に丸められます。

convergent は、非自明の勾配とバイアスでスケーリングされた fi オブジェクトはサポートしません。勾配が 2 の整数乗でバイアスが 0 の場合、勾配とバイアスのスケーリングは自明です。

データ型: fi
複素数のサポート: あり

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

複素数入力に対しては、実数部と虚数部は別々に丸められます。

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

アルゴリズム

  • ya は、同じ fimath オブジェクトと DataType プロパティをもっています。

  • aDataType プロパティが single または double である場合、ynumerictypea のものと同じです。

  • a の小数部の長さがゼロまたは負の場合、a は整数で、ynumerictypea のものと同じになります。

  • a の小数部の長さが正の場合、y の小数部の長さは 0 で、その符号は a の符号と同じになり、その語長は a の語長と小数部の長さの差に 1 ビット加算した長さになります。a が符号付きである場合、y の最小語長は 2 です。a が符号なしである場合、y の最小語長は 1 です。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。

バージョン履歴

R2006a より前に導入

参考

| | | |

トピック