Вокруг fi объект к самому близкому целому числу или круглым входным данным с помощью quantizer объект
y = round(a)
y = round(q,x)
y = round(a) раунды fi объект a к самому близкому целому числу. В случае связи, round значения раундов к самому близкому целому числу с большим абсолютным значением. Округленное значение возвращено в fi объект y.
y и a имейте тот же fimath объект и DataType свойство.
Когда DataType из a single'double', или boolean, numerictype из y совпадает с тем из a.
Когда дробная длина a нуль или отрицательный, a уже целое число и numerictype из y совпадает с тем из a.
Когда дробная длина a положительно, дробная длина y 0, его знак совпадает со знаком a, и его размер слова является различием между размером слова и дробной длиной a, плюс один бит. Если a подписывается, затем минимальный размер слова y 2. Если a без знака, затем минимальный размер слова y 1.
Для комплексного fi объекты, мнимые и действительные части округлены независимо.
round не поддерживает fi объекты с нетривиальным наклоном и масштабированием смещения. Масштабирование наклона и смещения тривиально, когда наклон является целочисленной степенью 2, и смещение 0.
y = round(q,x) использует RoundingMethod и FractionLength настройки q к раунду числовые данные x, но не проверяет на переполнение во время операции. Введите x должна быть встроенная числовая переменная. Используйте cast функционируйте, чтобы работать с fi объекты.
Следующий пример демонстрирует как round функция влияет на numerictype свойства fi со знаком объект с размером слова 8 и дробной длиной 3.
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 функция влияет на numerictype свойства fi со знаком объект с размером слова 8 и дробной длиной 12.
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Функции convergentсамый близкий и round отличайтесь по способу, которым они обрабатывают значения, младшая значащая цифра которых равняется 5:
convergent функционируйте связи раундов с самым близким даже целое число
nearest функционируйте связи раундов с самым близким целым числом к положительной бесконечности
round функционируйте связи раундов с самым близким целым числом с большим абсолютным значением
Следующая таблица иллюстрирует эти различия для данного fi объект a.
| a | конвергентный (a) | самый близкий (a) | раунд (a) |
|---|---|---|---|
| –3.5 | –4 | –3 | –4 |
| –2.5 | –2 | –2 | –3 |
| –1.5 | –2 | –1 | –2 |
| –0.5 | 0 | 0 | –1 |
| 0.5 | 0 | 1 | 1 |
| 1.5 | 2 | 2 | 2 |
| 2.5 | 2 | 3 | 3 |
| 3.5 | 4 | 4 | 4 |
Создайте объект квантизатора и используйте его, чтобы квантовать входные данные. Объект квантизатора применяет свои свойства к входным данным, чтобы возвратить квантованный выходной параметр.
q = quantizer('fixed', 'convergent', 'wrap', [3 2]); x = (-2:eps(q)/4:2)'; y = round(q,x); plot(x,[x,y],'.-'); axis square;

Применение квантизатора возражает, что q к данным привел к форме лестницы выходной график. Линейный ввод данных приводит к выходу, где y показывает отличные уровни квантования.