2015년 6월 30일 화요일

MATLAB의 plot()함수 (part 2)

 여기에서는 이전 포스트에 이어서 계속 plot()함수에 대해서 설명하도록 하겠다. 만약 sin(x)cos(x)함수를 그리고자 한다면 다음과 같이 하면 될 것이다.

>> x = 0:0.1:2*pi;
>> y = sin(x).*cos(x);
>> plot(x,y)

두 번째 줄에서 sin(x)와 cos(x)두 벡터의 곱에 (.*)연산자를 사용했음에 주의해야 한다. 계산하고자 하는 것이 두 벡터의 요소들 사이의 곱이기 때문이다.

[그림 1] 실행 결과 (gnu octave 에서 캡쳐)

또 다른 예로 x2+xsinx+1 이라는 함수를 도시하고자 한다면 다음과 같이 입력하면 된다.

>> x = -10:0.1:10;
>> y = x.^2 + x .*sin(x) + 1;
>> plot(x,y)

여기에서도 두 번째 줄에 (.^)연산자와 (.*)연산자가 쓰였음을 주의해서 보기 바란다. 요소간 연산을 수행해야 하기 때문이다.

[그림 2] 실행 결과 (gnu octave 에서 캡쳐)

두 번째 입력 파라메터가 행렬인 경우는 각각의 행을 서로 다른 그래프로 보여주게 된다. 다음 예를 보자.

>> x=linspace(0,2*pi,30);
>> y1=sin(x);
>> y2=cos(x);
>> Y=[y1;y2];
>> plot(x,Y)

의 예에서 linspace()함수는 0부터 까지 30개의 등간격 점을 생성하여 반환해주는 함수이다. plot()함수의 두 번째 파라메터 Y는 행렬이다. 아래  결과를 보면 각각의 행에 해당하는 그래프가 따로 도시됨을 알 수 있다.

[그림 3] 실행 결과 (gnu octave 에서 캡쳐)
 
또는 다음과 같이 따로따로 입력해도 같은 결과를 얻을 수 있다.

>> plot(x,y1,x,y2)

다음과 같이 x와 y값을 바꾸어서 입력하면 90도 회전시킨 그림을 도시하게 된다.

>> plot(Y,x)
[그림 4] 실행 결과 (gnu octave 에서 캡쳐)

이제까지 예제에서 그래프의 모양은 기본형이 실선으로 되어 있기 때문에 실선으로 그려졌으나 사용자가 임의로 지정할 수도 있다. 즉 선의 색상, 선의 모양 그리고 선의 종류를 사용자가 직접 지정할 수도 있다. 이것에 대해서는 다음 포스트에서 자세히 알아보도록 하겠다.


댓글 없음:

댓글 쓰기