Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

round

fi オブジェクトを最も近い整数に丸める、または quantizer オブジェクトを使用して入力データを丸める

説明

y = round(a)fi オブジェクト a を最も近い整数に丸めます。等距離の場合、round は値を絶対値の大きい方の最も近い整数に丸めます。丸められた値は fi オブジェクト y に返されます。

y = round(q,x)quantizer オブジェクト qRoundingMethod 設定と FractionLength 設定を使用し、数値データ x を丸めますが、演算中のオーバーフローはチェックしません。入力 x は組み込みの数値変数でなければなりません。fi オブジェクトを扱う場合は関数 cast を使用します。

すべて折りたたむ

次の例では、関数 round が、語長 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 = round(a)
y = 
     3

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

次の例では、関数 round が、語長 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 = round(a)
y = 
     0

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

この例では、quantizer オブジェクト q で指定した丸め手法と小数部の長さを使用して x の数値データを丸める方法を示します。

q = quantizer('fixed','convergent','wrap',[3 2])
q =


        DataMode = fixed
       RoundMode = convergent
    OverflowMode = wrap
          Format = [3  2]
x = (-2:eps(q)/4:2)';
y = round(q,x);
plot(x,[x,y],'.-'); axis square

Figure contains an axes object. The axes object contains 2 objects of type line.

関数 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 オブジェクトに対しては、虚数部と実数部は別々に丸められます。

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

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

RoundingMethod および FractionLength の設定。quantizer オブジェクトとして指定します。

例: q = quantizer('fixed', 'round', [3 2]);

quantizer オブジェクト q を使用して量子化する入力配列。スカラー、ベクトル、行列または多次元配列として指定します。

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

アルゴリズム

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

  • aDataType プロパティが singledouble または boolean である場合、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 より前に導入