Вокруг 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 показывает отличные уровни квантования.