Main Content

round

fi 객체를 가장 가까운 정수로 반올림 또는 quantizer 객체를 사용하여 입력 데이터 반올림

설명

예제

y = round(a)fi 객체 a를 가장 가까운 정수로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 round는 값을 절댓값이 더 큰 가장 가까운 정수로 반올림합니다. 반올림된 값은 fi 객체 y로 반환됩니다.

예제

y = round(q,x)quantizer 객체 qRoundingMethodFractionLength 설정을 사용하여 숫자형 데이터 x를 반올림하지만, 연산 중에 오버플로를 검사하지 않습니다. 입력값 x는 내장 숫자형 변수여야 합니다. fi 객체를 사용하려면 cast 함수를 사용하십시오.

예제

모두 축소

다음 예제에서는 round 함수가 워드 길이가 8이고 소수부 길이가 3인 부호 있는 fi 객체의 numerictype 속성에 어떠한 영향을 주는지 보여줍니다.

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 함수가 워드 길이가 8이고 소수부 길이가 12인 부호 있는 fi 객체의 numerictype 속성에 어떠한 영향을 주는지 보여줍니다.

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

이 예제에서는 quantizer 객체 q에 의해 지정된 반올림 방법과 소수부 길이를 사용하여 x의 숫자형 데이터를 반올림합니다.

q = quantizer('fixed','convergent','wrap',[3 2])
q =


        DataMode = fixed
       RoundMode = convergent
    OverflowMode = wrap
          Format = [3  2]
x = (-2:eps(q)/4:2)';
y = round(q,x);
plot(x,[x,y],'.-'); axis square

Figure contains an axes object. The axes object contains 2 objects of type line.

함수 convergent, nearest, round는 최소 유효 자릿수가 5인 값을 처리하는 방법이 서로 다릅니다.

  • convergent 함수는 반올림 경계에 놓인 숫자를 가장 가까운 짝수로 올림 또는 내림합니다.

  • nearest 함수는 반올림 경계에 놓인 숫자를 양의 무한대 방향의 가장 가까운 정수로 올림합니다.

  • round 함수는 반올림 경계에 놓인 숫자를 절댓값이 더 큰 가장 가까운 정수로 올림 또는 내림합니다.

이 예제에서는 주어진 입력값 a에 대한 이러한 차이를 보여줍니다.

a = fi([-3.5:3.5]');
y = [a convergent(a) nearest(a) round(a)]
y = 
   -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 객체의 경우 허수부와 실수부는 개별적으로 반올림됩니다.

round는 자명하지 않은 기울기와 편향 스케일링을 가진 fi 객체를 지원하지 않습니다. 기울기가 2의 정수 거듭제곱이고 편향이 0이면 기울기와 편향 스케일링이 자명한 경우입니다.

데이터형: fi
복소수 지원 여부:

RoundingMethodFractionLength 설정으로, quantizer 객체로 지정됩니다.

예: q = quantizer('fixed', 'round', [3 2]);

quantizer 객체 q를 사용하여 양자화할 입력 배열로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
복소수 지원 여부:

알고리즘

  • ya는 동일한 fimath 객체와 DataType 속성을 갖습니다.

  • aDataType 속성이 single형, double형 또는 boolean인 경우 ynumerictypea와 동일합니다.

  • a의 소수부 길이가 0이거나 음수이면 a는 이미 정수이며 ynumerictypea와 동일합니다.

  • a의 소수부 길이가 양수이면 y의 소수부 길이는 0이고 부호는 a와 같으며 워드 길이는 a의 워드 길이와 소수부 길이 간의 차에 1비트를 더한 값입니다. a에 부호가 있으면 y의 최소 워드 길이는 2입니다. a에 부호가 없으면 y의 최소 워드 길이는 1입니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | | |