Круглый объект 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 совпадает с numerictype a.
Когда дробная длина a является нулем или отрицательный, a уже является целым числом, и numerictype y совпадает с numerictype 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: 0convergent функций, nearest и 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 показывает отличные уровни квантования.