ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

round

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

構文

y = round(a)
y = round(q,x)

説明

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

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

aDataTypesingledouble、または boolean の場合、ynumerictypea のものと同じになります。

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

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

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

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

y = round(q,x)qRoundingMethod 設定と FractionLength 設定を使用し、数値データ x を丸めますが、演算中のオーバーフローはチェックしません。quantize と比較してみてください。

例 1

次の例は、関数 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

例 2

次の例は、関数 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

例 3

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

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

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

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

次の表は、特定の fi オブジェクト a に対するこれらの違いについて示します。

aconvergent(a)nearest(a)round(a)
–3.5–4–3–4
–2.5–2–2–3
–1.5–2–1–2
–0.500–1
0.5011
1.5222
2.5233
3.5444

例 4

quantizer オブジェクトを作成し、それを入力データの量子化に使用します。quantizer オブジェクトはそのプロパティを入力データに適用し、量子化した出力を返します。

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

quantizer オブジェクト q をデータに適用すると、下図に示す階段状の出力プロットが得られます。データ入力は線形ですが、出力では y が明確な量子化レベルを示しています。

参考

| | | | | |

この情報は役に立ちましたか?