테크/MATLAB

[MATLAB] 여러 그래프 띄우기(subplot())

시그널보내 2021. 7. 6. 22:49

앞서 2차원 그래프를 그릴 때 하나의 창에 하나의 그래프만 띄웠지만 여러 그래프를 띄우고 싶을 때는 어떻게 할까?

 

plot()으로 그래프를 띄우기 전에 subplot()함수로 지정된 공간에 특정 그래프를 띄울 수 있다.

 

예를 들어 subplot(3, 3, 2)라고 선언을 했다고 가정하자.

 

이는 창에 3x3형태의 공간을 할당한 상태이며 (1, 2)의 자리에 그래프를 띄운다는 뜻이다.

 

또 다른 예로 subplot(3, 3, 7)라고 선언을 하면 (3, 1)의 자리에 그래프를 띄운다.

 

이렇게 스크립트에서 식을 여러개 만들고 for문을 통해 연산을 계속 해주면 하나의 창에 여러 그래프를 띄울 수 있다.


t=linspace(-1,1,100);
y1=zeros(1,100);
y2=zeros(1,100);
y3=zeros(1,100);
y4=zeros(1,100);
y5=zeros(1,100);
y6=zeros(1,100);
y7=zeros(1,100);
y8=zeros(1,100);
y9=zeros(1,100);
for x=1:100
   y1(x)=t(x)^2-2*t(x)+1;
   y2(x)=sin(2*pi*t(x));
   y3(x)=sin(2*pi*t(x)+2*pi*t(x));
   y4(x)=exp(t(x));
   y5(x)=cos(2*pi*t(x));
   y6(x)=exp(t(x)^2);
   y7(x)=exp(t(x)^10);
   y8(x)=(sin(2*pi*t(x))-cos(4*pi*t(x)));
   y9(x)=tan(2*pi*t(x));
end
subplot(3,3,1);  //(1, 1)
plot(t,y1);
subplot(3,3,2);  //(1, 2)
plot(t,y2);
subplot(3,3,3);   //(1, 3)
plot(t,y3);
subplot(3,3,4);   //(2, 1)
plot(t,y4);
subplot(3,3,5);   //(2, 2)
plot(t,y5);
subplot(3,3,6);   //(2, 3)
plot(t,y6);
subplot(3,3,7);   //(3, 1)
plot(t,y7);
subplot(3,3,8);   //(3, 2)
plot(t,y8);
subplot(3,3,9);   //(3, 3)
plot(t,y9);