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