본문 바로가기
programming language/MATLAB

MATLAB NaN

by __observer__ 2011. 4. 20.
반응형

MATLAB 의 NaN키워드는 Not-a-Number 의 약자입니다.

 

즉 숫자가 아니라는 뜻입니다.

 

0/0 이나 ∞/∞ 와 같은 경우 NaN 이 출력 되게 되는데, 보통은 쓸모가 없다라고 생각하곤 합니다.

 

하지만 이런 NaN 키워드는 그래프를 그릴 때 매우 유용하게 사용할 수 있습니다.

 

그래프에서 특정 부분을 그래프에 나타내고 싶지 않을 때는 NaN 을 이용해서 표현을 하면 됩니다.

 



 

다음과 같은 경우를 보죠.

 

x=1:10;

y=x*2;

figure, plot(x,y), grid on

y2=y; y2(y>10)=nan; % y 의 값중 10 보다 큰 값들은 nan 으로 설정

figure, plot(x,y2), grid on

 

위 코드는 y 의 값 중에서 10 보다 큰 값들은 NaN 을 이용하여 그래프에서 제거 해주었습니다.

 

 



 

다음과 같이 3 차원 그래프에서 NaN 을 이용해 보죠.

 

[x y] = meshgrid(-8:0.5:8);

r = x.^2 + y.^2;

mesh(x,y,r), xlabel('x'), ylabel('y'), zlabel('z')

grid on

 

위 코드의 결과 다음과 같은 그래프가 그려 집니다.

 

 

r2=r;

index=(x<0) & (y>0);

r2(index)=nan; % x<0 and y>0 인 부분을 지운다.

mesh(x,y,r2), xlabel('x'), ylabel('y'), zlabel('z')

grid on

 

위 코드와 같이 nan 을 이용하여 x <0 이고 y > 0 인 부분을 그래프에서 쉽게 지울 수가 있습니다.

 


반응형

'programming language > MATLAB' 카테고리의 다른 글

MATLAB ordinary differential equation , ode45  (10) 2011.04.24
MATLAB nargin, nargout  (6) 2011.04.24
MATLAB laplace, inverse laplace transform  (0) 2011.04.24
MATLAB 변수를 저장 하자~ mat file  (0) 2011.04.21
MATLAB 파일 출력  (0) 2011.04.19
MATLAB 파일 읽기 importdata()  (0) 2011.04.18
MATLAB binomial r.v. generation  (4) 2011.04.17
MATLAB cell class  (6) 2011.04.11

댓글