공학/matlab

matlab 정리 - 6.2차원 플롯과 3차원 플롯

뤠이튼 2021. 3. 20. 00:41

※이 글은 매틀랩 도움말센터 MATLAB Documentation - MathWorks 한국을 가지고 따라 하며 만든 자료입니다

 

MATLAB Documentation - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com

 

이번 포스팅은 플롯에 관해서입니다 그래프를 시작화 할 수 있습니다

 

2차원 플롯

 

2차원 플롯을 그리기 위해서는 plot함수를 통해 그려야 합니다 plot 함수는 2차원 선 플롯을 그려주는 함수입니다

0에서 2π까지 사인 함숫값을 플로팅 해 보겠습니다.

x=0:pi/100:2*pi;
y=sin(x);
plot(x,y)

 

잘 나왔습니다 위 X=0:pi/100:2*pi 가 헷갈리는 분이 있을 것 같아서 조금 더 설명하겠습니다

: 연산자는 기본적으로 행렬 벡터를 생성해냅니다 a:b 일 땐 a~b까지 1씩 증가하는 배열을 만들지요

a:x:b꼴일 경우엔 a부터 b까지 x간격을 가지고 만듭니다 즉 해석하면 pi를 100으로 나눈 간격으로 0~2pi

까지 만듭니다 이를 작업공간을 통해서 확인해볼 수도 있습니다 작업공간에서 x를 더블클릭해봅시다

 

3.14*2=6.28 정확히 맞습니다 

 

이번엔 좌표축에 레이블을 지정하고 제묵을 추가해보겠습니다 plot가 실행된 채로 하겠습니다

xlabel('x')
ylabel('sin(x)')
title('plot')

 

xlabel:x축에 레이블을 지정하는 함수입니다 기본형은 xlabel(txt) 형태입니다 레퍼런스는 더보기에 있습니다

ylabel:y축에 레이블 지정을 지정하는 함수입니다 기본형은 ylabel(txt) 형태입니다 레퍼런스는 더 보기에 있습니다

title:제목 추가 함수입니다 기본형은 title(titletext) 형태입니다 레퍼런스는 더 보기에 있습니다

 

plot 함수에 인자를 추가해서 선의 색과 선의 패턴을 바꿀 수도 있습니다

 plot(x,y,'r--')

'r--'은 선의 사양을 나타냅니다 각 사양에는 선색, 선 스타일, 마커에 대한 문자를 포함시킬 수 있고 마커는 데이 터점을 나타내는 기호입니다 

 

 hold 

 

hold함수는 새 플롯을 추가할 시 현재 플롯에 유지시킬 때 사용합니다 on으로 설정돼있으면 새로추가될떄 기존플롯이 삭제되지않도록하고 off 되있으면 전 플롯은 지워지고 새로 그려냅니다

 

x=0:pi/100:2*pi;
y=sin(x);
plot(x,y)
hold on
y2=cos(x);
plot(x,y2,':')
legend('sin','cos')
hold off

legend:좌표축에 범례 추가하는 함수입니다 기본형은 legend(label1,..., labelN)입니다

 

 

3차원 플롯

3차원 플롯은 일반적으로 두 변수의 함수 z=f(x, y) 꼴로 정의되는 곡면을 표시합니다 z를 나타내기 위해 먼저 함수 정의역에 대해 meshgrid로 (x, y)점 집합을 만들어냅니다 

 

[x,y]=meshgrid(-2:.2:2);
z=x.*exp(-x.^2-y.^2);
 surf(x,y,z)

일단 meshgrid 함수부터 설명하겠습니다

 

meshgrid:2차원 그리드와 3차원 그리드를 만들어내는  함수입니다 x  y에 포함된 좌표를 바탕으로 2차원 그리드 좌표를 반환합니다

 

 

[x, y]에 -2부터 2까지 0.2 단위로 만든 2차원 grid좌표를 반환합니다 

 

z=x.*exp(-x.^2-y.^2);를 해석하면

exp는 자연로그 e의 지수입니다  y= exp(x)는 배열 x의 각 요소에 대해  e^x를 반환합니다

 

 

서브플롯

subplot 함수를 사용하면 동일한 창의 서로 다른 서브 영역에 여러 개의 플롯을 표시할 수 있습니다.

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

 

MESH:메시 곡면 플롯 함수입니다 기본형은 mesh(x, y, z) 형태입니다

cylinder:원기둥을 만드는 함수입니다

 

저희가 볼 건 subplot함수입니다 subplot은 타일 형식 위치로 좌표축을 생성해 플롯을 배치할 수 있습니다 기본형은 subplot(a, b, c) 형태입니다 입력받으면 플롯을 나타내는 Figure a*b형태 그리드로 나누고 위치를 번호로 매겨 c인자 번호에 배치합니다

 

'공학 > matlab' 카테고리의 다른 글

matlab정리 -8.표현식  (0) 2021.03.25
matlab정리 -7.프로그래밍과 스크립트  (0) 2021.03.22
matlab정리 - 5.함수호출  (0) 2021.03.19
matlab 정리 - 4. 텍스트와 문자  (0) 2021.03.19
matlab 정리 - 3.작업 공간 변수  (0) 2021.03.16