본문 바로가기
programming language/MATLAB

MATLAB 반올림 관련 함수들 round, fix, ceil, floor

by __observer__ 2011. 3. 19.
반응형

이번 포스팅에서는 MATLAB 의 rounding 관련 함수들에 대해 정리한다. 다음과 같은 벡터 값에 대해 위 함수들을 적용해 보고 그 특징을 알아본다.

x=[-4.3 -1.8 0.7 3.6 1.2+2.6i ]

x =

-4.3000 -1.8000 0.7000 3.6000 1.2000 + 2.6000i

 

  • ceil() : + 무한대 쪽으로 rounding 한다.

ceil(x)

ans =

-4.0000 -1.0000 1.0000 4.0000 2.0000 + 3.0000i

 

  • floor(): ceil 과는 반대로 - 무한대 쪽으로 rounding 한다.

floor(x)

ans =

-5.0000 -2.0000 0 3.0000 1.0000 + 2.0000i

  • fix(): 0 방향으로 rounding 한다.

fix(x)

ans =

-4.0000 -1.0000 0 3.0000 1.0000 + 2.0000i

 

  • round(): 가장 가까운 정수 방향으로 rounding 한다.

round(x)

ans =

-4.0000 -2.0000 1.0000 4.0000 1.0000 + 3.0000i

 

입력이 복소수의 경우에는 real, imaginay 값 각각에 대해 각 함수가 적용 된다.

 

위에서 설명한 rounding 함수들은 몫과 나머지를 구하는데 자주 이용되곤 한다. 예를 들면 다음과 같은 경우이다.

126 / 10 의 몫과 나머지를 구하여라.

몫 : floor(126/10) = 12

나머지 : 126-floor(126/10)*10 = 6

 

나머지와 관련된 함수로는 rem() , mod() 같은 함수가 있다.

rem(), mod() 를 이용하여 나머지를 구해 보자.

 

rem(126,10)

ans =

6

 

mod(126,10)

ans =

6

 

위 결과와 같이 값이 양의 값일 때는 둘 다 같은 결과 6이 나오는 것을 알 수 있다. 하지만 아래 예와 같이 음의 값이 입력되는 경우에는 결과가 다르다.

 

rem(-126,10)

ans =

-6

 

mod(-126,10)

ans =

4

 

rem(x,y) 함수는 x - n.*y 값을 리턴 해 주며 이때 n 을 다음과 같이 처리 한다. n = fix(x./y)

mod(x,y) 함수는 x - n.*y 값을 리턴 해 주며 이때 n 을 다음과 같이 처리 한다. n = floor(x./y)

 

몫을 어떻게 처리 하는가에 따라 결과가 다르므로 함수에 대해 정확히 공부를 하고 사용해야 한다.


반응형

댓글