convergent

Округлить к ближайшее целому числу со связями, округляющимися до ближайшего четного целого числа

Описание

пример

y = convergent(a) округляет fi a объекта на ближайшее целое число. В случае галстука convergent(a) округляет до ближайшего четного целого числа.

пример

y = convergent(x) округляет элементы x на ближайшее целое число. В случае галстука convergent(x) округляет до ближайшего четного целого числа.

Примеры

свернуть все

Следующий пример демонстрирует, как convergent функция влияет на 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 = convergent(a)
y = 
     3

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 6
        FractionLength: 0

Следующий пример демонстрирует, как convergent функция влияет на 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 = convergent(a)
y = 
     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 2
        FractionLength: 0

Функции convergent, nearest, и round отличаются тем, как они обрабатывают значения, чья наименее значимая цифра равна 5.

  • The convergent функция округляет связи с ближайшим четным целым числом.

  • The nearest функция округляет связи с ближайшее целым числом к положительной бесконечности.

  • The round функция округляет связи с ближайшее целым числом с большим абсолютным значением.

Этот пример иллюстрирует эти различия для заданного входа, а.

a = fi([-3.5:3.5]');
y = [a convergent(a) nearest(a) round(a)]
y=8×4 object
   -3.5000   -4.0000   -3.0000   -4.0000
   -2.5000   -2.0000   -2.0000   -3.0000
   -1.5000   -2.0000   -1.0000   -2.0000
   -0.5000         0         0   -1.0000
    0.5000         0    1.0000    1.0000
    1.5000    2.0000    2.0000    2.0000
    2.5000    2.0000    3.0000    3.0000
    3.5000    3.9999    3.9999    3.9999

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

Входные параметры

свернуть все

Входные fi массив, заданный как скалярный, векторный, матричный или многомерный массив.

Для сложных fi объекты, воображаемая и действительная части скруглены независимо.

convergent не поддерживает fi объекты с нетривиальным наклоном и масштабированием смещения. Масштабирование наклона и смещения тривиально, когда наклон является целочисленной степенью 2, а смещение равняется 0.

Типы данных: fi
Поддержка комплексного числа: Да

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.

Для сложных входов действительная и мнимая части округлены независимо.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Алгоритмы

  • y и a иметь то же fimath объект и DataType свойство.

  • Когда DataType свойство a является single, или double, а numerictype от y является тем же самым, что и у a.

  • Когда длина дроби a является нулем или отрицательным, a уже является целым числом, и numerictype от y является тем же самым, что и у a.

  • Когда длина дроби a положительно, длина дроби y является 0, его знак такой же, как у a, и его размер слова является различием между размером слова и длиной дроби a, плюс один бит. Если a подписывается, затем минимальный размер слова y является 2. Если a не подписан, а минимальный размер слова y является 1.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

Представлено до R2006a