이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

플롯 만들기

기호 플로팅 함수를 사용하여 플로팅하기

MATLAB®은 다양한 수치 데이터 플로팅 기법을 제공합니다. MATLAB의 그래픽 기능에는 플로팅 툴, 표준 플로팅 함수, 그래픽 조작 및 데이터 탐색 툴, 그리고 그래픽스를 표준 형식으로 출력하고 내보내는 툴이 있습니다. Symbolic Math Toolbox™에서는 이러한 그래픽 기능을 확장하여 다음을 사용하여 기호 함수를 플로팅할 수 있습니다.

  • fplot은 카테시안 좌표에서 기호 표현식, 기호 방정식 또는 기호 함수의 2차원 플롯을 만듭니다.

  • fplot3은 3차원 파라미터 플롯을 만듭니다.

  • ezpolar는 극좌표의 플롯을 만듭니다.

  • fsurf는 표면 플롯을 만듭니다.

  • fcontour는 등고선 플롯을 만듭니다.

  • fmesh는 메시 플롯을 만듭니다.

fplot을 사용하여 기호 표현식 sin(6x)를 플로팅합니다. 기본적으로 fplot은 범위 -5<x<5를 사용합니다.

syms x
fplot(sin(6*x))

ezpolar를 사용하여 기호 표현식 또는 기호 함수를 극좌표 r(반지름) 및 θ(편각)에 플로팅합니다. 기본적으로 ezpolar는 기호 표현식 또는 기호 함수를 0<θ<2π 구간에 대해 플로팅합니다.

기호 표현식 sin(6t)를 극좌표로 플로팅합니다.

syms t
ezpolar(sin(6*t))

함수를 수치적으로 플로팅하기

표현식을 기호적으로 플로팅하는 대신, subs를 사용하면 기호 변수에 숫자형 값을 대입할 수 있습니다. 그런 다음 MATLAB™에서 플로팅 함수에 이들 숫자형 값을 사용할 수 있습니다.

다음 표현식 uv에서, 기호 변수 xymeshgrid로 정의된 숫자형 값을 대입합니다.

syms x y
u = sin(x^2 + y^2);
v = cos(x*y);
[X, Y] = meshgrid(-1:.1:1,-1:.1:1);
U = subs(u, [x y], {X,Y});
V = subs(v, [x y], {X,Y});

이제 표준 MATLAB 플로팅 함수를 사용하여 UV를 플로팅할 수 있습니다.

MATLAB quiver 함수를 사용하여, 함수 U(X,Y)V(X,Y)로 정의된 벡터장의 플롯을 만듭니다.

quiver(X, Y, U, V)

하나의 그래프에 여러 개의 기호 함수 플로팅하기

함수를 순차적으로 추가하여 하나의 그래프에 여러 개의 함수를 플로팅할 수 있습니다. 첫 번째 함수를 플로팅한 후에 hold on 명령을 사용하여 나머지 함수를 이어서 추가하면 됩니다. hold on 명령은 기존 플롯을 유지합니다. hold on 명령을 사용하지 않으면 기존 플롯이 각각의 새 플롯으로 바뀝니다. hold on 명령을 실행한 후에는 새로 그려지는 플롯은 기존 플롯 위에 표시됩니다. 플롯을 교체하는 디폴트 동작으로 다시 돌아가려면 hold off 명령을 사용하십시오.

fplot을 사용하여 f=exsin(20x)를 플로팅합니다. exe-x의 플롯을 빨간색 파선으로 겹쳐 놓음으로써 f의 범위를 표시합니다. fplot에서 반환된 객체의 DisplayName 속성을 사용하여 제목을 설정합니다.

syms x y
f = exp(x)*sin(20*x)
f = sin(20x)ex
obj = fplot(f,[0 3]);
hold on
fplot(exp(x), [0 3], '--r')
fplot(-exp(x), [0 3], '--r')
title(obj.DisplayName)
hold off

하나의 Figure에 여러 개의 기호 함수 플로팅하기

subplot을 사용하면 Figure 창을 여러 개의 서브플롯으로 나누어서 하나의 Figure에 여러 개의 함수를 나란히 표시할 수 있습니다. 명령 subplot(m,n,p)는 Figure를 mxn 크기의 서브플롯으로 나누고 서브플롯 p를 선택합니다. 서브플롯을 선택하고 플로팅 명령을 사용하여 여러 개의 플롯을 개별 서브플롯에 표시합니다. 여러 개의 서브플롯에 플로팅하면 플롯을 나란히 비교할 때 유용합니다.

subplot을 사용하여 서브플롯을 나란히 만들어서 a=10,20,50,100에 대해 sin((x2+y2)/a)의 플롯을 비교합니다.

syms x y a
f = sin((x^2 + y^2)/a);

subplot(2, 2, 1)
fsurf(subs(f, a, 10))
title('a = 10')

subplot(2, 2, 2)
fsurf(subs(f, a, 20))
title('a = 20')

subplot(2, 2, 3)
fsurf(subs(f, a, 50))
title('a = 50')

subplot(2, 2, 4)
fsurf(subs(f, a, 100))
title('a = 100')

기호 함수 플롯과 숫자형 데이터 플롯 결합하기

MATLAB 함수와 Symbolic Math Toolbox 함수를 함께 사용하여 동일한 그래프에 숫자형 데이터와 기호 데이터를 플로팅합니다.

[-5,5] 범위 내의 숫자형 x 값의 경우, y=sin(x)를 구하고 y에 난수 값을 추가하여 잡음이 있는 사인 곡선을 반환합니다. scatter를 사용하여 점 (x1,y1),(x2,y2),를 플로팅하여 잡음이 있는 사인 곡선을 표시합니다.

x = linspace(-5,5);
y = sin(x) + (-1).^randi(10, 1, 100).*rand(1, 100)./2;
scatter(x, y)

사인 함수의 플롯을 겹쳐 놓아서 점들의 기본 구조를 표시해 보겠습니다. 먼저 hold on을 사용하여 산점도 플롯을 유지합니다. 그런 다음 fplot을 사용하여 사인 함수를 플로팅합니다.

hold on
syms t
fplot(sin(t))
hold off

3차원에서 수치 플롯과 기호 플롯 결합하기

MATLAB 플로팅 함수와 Symbolic Math Toolbox 플로팅 함수를 함께 사용하여 3차원에서 기호 플롯과 수치 플롯을 결합할 수 있습니다. Symbolic Math Toolbox에는 다음과 같은 3차원 플로팅 함수가 있습니다.

  • fplot3은 파라미터화된 3차원 선 플롯을 만듭니다.

  • fsurf는 3차원 곡면 플롯을 만듭니다.

  • fmesh는 3차원 메시 플롯을 만듭니다.

fplot3을 사용해 파라미터 선을 플로팅하여 나선형 플롯을 만듭니다.

x=(1-t)sin(100t)y=(1-t)cos(100t)z=1-x2-y2.

syms t
x = (1-t)*sin(100*t);
y = (1-t)*cos(100*t);
z = sqrt(1 - x^2 - y^2);
fplot3(x, y, z, [0 1])
title('Symbolic 3-D Parametric Line')

반지름이 1이고 중심이 (0, 0, 0)인 구의 플롯을 겹쳐 놓습니다. sphere를 사용하여 구 위의 점을 수치적으로 찾습니다. mesh를 사용하여 구를 플로팅합니다. 결과로 생성되는 플롯은 상단 반구를 감싸고 있는 기호 파라미터 선을 보여줍니다.

hold on
[X,Y,Z] = sphere;
mesh(X, Y, Z)
colormap(gray)
title('Symbolic Parametric Plot and a Sphere')
hold off