이번 포스팅에서는 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)
몫을 어떻게 처리 하는가에 따라 결과가 다르므로 함수에 대해 정확히 공부를 하고 사용해야 한다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB input() (0) | 2011.03.21 |
---|---|
MATLAB 기본3, sort, if ~ end, for ~ end, max, min (4) | 2011.03.21 |
MATLAB erf, erfc, Q- function (2) | 2011.03.19 |
MATLAB BPSK BER simulation in AWGN channel (77) | 2011.03.19 |
MATLAB interpolation, interp1() (0) | 2011.03.19 |
MATLAB 기본 2 (0) | 2011.03.19 |
MATLAB subplot() (0) | 2011.03.16 |
MATLAB 입력 신호의 delay 확인 xcorr(), finddelay() (0) | 2011.03.14 |
댓글