본문 바로가기
programming language/MATLAB

MATLAB ezplot() 함수로 그래프를 쉽게 그리자

by __observer__ 2011. 3. 13.
반응형

오늘은 ezplot() 함수를 이용하여 그래프를 그리는 방법에 대해서 설명하겠습니다. ezplot() 함수는 함수에 대해 기본적으로 x 축의 범위가 -2π ~ 2π 범위에 대해 그래프를 그려 주는 함수 입니다. 물론 함수의 범위는 사용자가 설정할 수도 있습니다.

 

몇 가지 예를 통해 사용 방법을 설명 드리겠습니다. y=sin(x) + x2 + 2x+4 라는 함수에 대해 그래프를 그려 보겠습니다. 위 수식에 대한 그래프를 그리는 방법은 다음과 같습니다.

 

matlab command 창에서 ezplot('sin(x) + x.^2 + 2.*x+4 ') 라고 타이핑 하면 다음과 같은 결과가 나옵니다. 다음 결과는 x 축의 범위가 위에 설명 드린 데로 -2π ~ 2π 범위의 값이 나왔습니다.

 

그럼 조금 다른 형태로 함수를 표현하고 ezplot() 을 이용하여 -10~10 사이의 축에 대해 그래프를 그려 보겠습니다. 위 수식을 다음과 같이 function handle 을 이용하여서 표현할 수도 있습니다. 일반적으로 함수는 함수파일로 따로 저장을 해서 이용하곤 하지만 다음과 같음 function handle을 이용하면 코딩 중간에 바로 함수를 만들어서 쓸 수 있다는 점에서 편리합니다.

 

f = @(x) sin(x)+ x.^2 + 2.*x+4

f =

@(x)sin(x)+x.^2+2.*x+4

 

이제 위 f 라는 핸들을 이용하여 그래프를 그려보면

 

ezplot(f,[-10 10]), grid on

 

위 결과와 같이 굉장히 간단하게 그래프를 그릴 수 있습니다. ezplot 함수를 사용하실 때 항상 vectorize 하시는 게 좋습니다. 그렇지 않음 다음과 같은 warning 이 뜨게 됩니다. vectorize 에 대해서는 다음 페이지를 참조 하시기 바랍니다.     


 2010/01/01 - [MATLAB] - MATLAB - vectorize()

 

Warning: Function failed to evaluate on array inputs; vectorizing the function may

speed up its evaluation and avoid the need to loop over array elements.

 

마지막 예로 원을 하나 그려 보겠습니다.

 

보통 반지름 r 이고 중점이 (a, b) 인 원은 다음과 같이 표현 됩니다.

 

 

중점이 (2, 3) 이고 반지름이 3인 원을 한번 그려 보겠습니다.

 

먼저 function handle 로 함수를 지정 해 줍니다.

 

f = @(x,y)(x-2).^2 + (y-3).^2 -3^2

f =

@(x,y)(x-2).^2+(y-3).^2-3^2

 

다음으로 ezplot() 함수를 이용하여 그림을 그려 줍니다.

 

ezplot(f), grid on

 

다음과 같은 결과가 나오는 것을 확인 할 수 있습니다.

 



반응형

댓글