Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

quiver3

3차원 퀴버 또는 벡터 플롯

  • 3-D Cartesian grid with plotted arrows

설명

예제

quiver3(X,Y,Z,U,V,W)X, Y, Z로 지정된 카테시안 좌표에서 방향 성분 U, V, W를 사용하여 화살표를 플로팅합니다. 예를 들어, 첫 번째 화살표는 점 X(1), Y(1), Z(1)에서 시작하여 U(1)에 따라 x축 방향으로 뻗고, V(1)에 따라 y축 방향으로 뻗고, W(1)에 따라 z축 방향으로 뻗습니다. 기본적으로 quiver3 함수는 화살표가 중첩되지 않도록 화살표 길이를 스케일링합니다.

quiver3(Z,U,V,W)는 곡면 Z를 따라 균일한 간격의 점에서 U, V, W로 지정된 방향 성분을 사용하여 화살표를 플로팅합니다.

  • Z가 벡터이면 화살표의 x 좌표의 범위는 1에서 Z의 요소 개수 사이이고, y 좌표는 모두 1입니다.

  • Z가 행렬이면 화살표의 x 좌표의 범위는 1에서 Z의 열 개수 사이이고, y 좌표의 범위는 1에서 Z의 행 개수 사이입니다.

예제

quiver3(___,scale)은 다음과 같이 화살표의 길이를 조정합니다.

  • scale이 양수이면 quiver3 함수는 화살표가 중첩되지 않도록 자동으로 길이를 조정한 다음 scale배만큼 늘입니다. 예를 들어, scale이 2이면 화살표의 길이가 2배로 늘어나고, scale이 0.5이면 화살표의 길이가 반으로 줄어듭니다.

  • scale'off' 또는 0이면(예: quiver3(X,Y,Z,U,V,W,'off')) 자동 스케일링이 비활성화됩니다.

예제

quiver3(___,LineSpec)은 선 스타일, 마커, 색을 설정합니다. 마커는 X, Y, Z로 지정된 점에 표시됩니다. LineSpec을 사용하여 마커를 지정하면 quiver3은 화살촉을 표시하지 않습니다. 마커를 지정하고 화살촉을 표시하려면 대신 Marker 속성을 사용하십시오.

quiver3(___,LineSpec,'filled')LineSpec으로 지정된 마커를 채웁니다.

quiver3(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 퀴버 속성을 지정합니다. 속성 목록은 Quiver 속성을 참조하십시오. 다른 모든 입력 인수 다음에 이름-값 쌍 인수를 지정합니다. 이름-값 쌍의 인수는 퀴버 플롯에 있는 모든 화살표에 적용됩니다.

예제

quiver3(ax,___)는 현재 좌표축(gca) 대신 ax로 지정된 좌표축에 퀴버 플롯을 만듭니다. ax 인수는 위에 열거된 구문의 입력 인수 조합보다 먼저 나올 수 있습니다.

예제

q = quiver3(___)Quiver 객체를 반환합니다. 이 객체는 퀴버 플롯을 만든 후에 속성을 제어하는 경우에 유용합니다.

예제

모두 축소

북미 지역의 기류를 나타내는 샘플 데이터를 불러옵니다. 이 예제에서는 데이터의 서브셋을 선택합니다.

load wind
X = x(5:10,20:25,6:10);
Y = y(5:10,20:25,6:10);
Z = z(5:10,20:25,6:10);
U = u(5:10,20:25,6:10);
V = v(5:10,20:25,6:10);
W = w(5:10,20:25,6:10);

선택한 서브셋의 3차원 퀴버 플롯을 만듭니다. 벡터 X, Y, Z는 각 화살표의 기준 위치를 나타내고 U, V, W는 각 화살표의 방향 성분을 나타냅니다. 기본적으로 quiver3 함수는 화살표가 중첩되지 않도록 길이를 줄입니다. axis equal을 호출하여 각 축에 동일한 데이터 단위 길이를 사용합니다. 이렇게 하면 화살표가 올바른 방향을 가리킵니다.

quiver3(X,Y,Z,U,V,W)
axis equal

Figure contains an axes. The axes contains an object of type quiver.

기본적으로 quiver3 함수는 화살표가 중첩되지 않도록 길이를 줄입니다. 화살표 길이가 전적으로 U, V, W에 의해 결정되도록 자동 스케일링을 비활성화하려면 scale 인수를 0으로 설정하십시오.

예를 들어, 먼저 10×10 면으로 구성된 단위구의 x, y, z 좌표를 반환합니다. surfnorm 함수를 사용하여 곡면 법선의 방향 성분을 계산합니다. 그런 다음 자동 스케일링 없이 3차원 퀴버 플롯을 만듭니다.

[X,Y,Z] = sphere(10);
[U,V,W] = surfnorm(X,Y,Z);
quiver3(X,Y,Z,U,V,W,0)
axis equal

Figure contains an axes. The axes contains an object of type quiver.

비교를 위해 자동 스케일링이 사용된 플롯을 만듭니다. 화살표가 더 짧고 중첩되지 않는 것을 볼 수 있습니다.

figure
quiver3(X,Y,Z,U,V,W)
axis equal

Figure contains an axes. The axes contains an object of type quiver.

함수 z=xe-x2-y2으로 정의되는 곡면에 대해 법선인 벡터를 플로팅합니다. quiver3 함수를 사용하여 벡터를 플로팅하고 surf 함수를 사용하여 곡면을 플로팅합니다.

먼저 균일한 간격을 갖는 x 값과 y 값의 그리드를 만듭니다. 이들 값을 사용하여 z를 계산합니다. 그런 다음 법선 벡터를 구합니다.

[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.*exp(-X.^2 - Y.^2);
[U,V,W] = surfnorm(X,Y,Z);

벡터를 3차원 퀴버 플롯으로 표시합니다. 그런 다음 동일한 좌표축에 곡면을 표시합니다. 벡터가 곡면에 대해 법선으로 표시되도록 axis equal을 호출하여 표시 화면을 조정합니다.

quiver3(X,Y,Z,U,V,W)
hold on
surf(X,Y,Z)
axis equal

Figure contains an axes. The axes contains 2 objects of type quiver, surface.

3차원 퀴버 플롯을 만들고 화살표의 색을 지정합니다.

예를 들어, 먼저 곡면의 x, y, z 좌표를 반환합니다. surfnorm 함수를 사용하여 곡면 법선의 방향 성분을 계산합니다.

[X,Y] = meshgrid(-pi/2:pi/8:pi/2,-pi/2:pi/8:pi/2);
Z = sin(X) + cos(Y);
[U,V,W] = surfnorm(Z);

그런 다음 빨간색 화살표를 사용하여 3차원 퀴버 플롯을 만듭니다.

quiver3(X,Y,Z,U,V,W,'r')
axis equal

Figure contains an axes. The axes contains an object of type quiver.

R2019b부터는 tiledlayout 함수와 nexttile 함수를 사용하여 플롯을 타일 형식 배열로 표시할 수 있습니다. tiledlayout 함수를 호출하여 1×2 타일 형식 차트 레이아웃을 만듭니다. nexttile 함수를 호출하여 axes 객체를 만들고 ax1로 반환합니다. ax1quiver3 함수에 전달하여 왼쪽 플롯을 만듭니다. 좌표축을 title 함수에 전달하여 플롯에 제목을 추가합니다. 이 과정을 반복하여 오른쪽 플롯을 만듭니다.

[X,Y] = meshgrid(-2:0.25:0,-2:0.25:0);
Z1 = -0.5*(X.^2 + Y.^2);
[U1,V1,W1] = surfnorm(Z1);
Z2 = -X.*Y;
[U2,V2,W2] = surfnorm(Z2);

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
quiver3(ax1,X,Y,Z1,U1,V1,W1)
axis equal
title(ax1,'Left Plot')

% Right plot
ax2 = nexttile;
quiver3(ax2,X,Y,Z2,U2,V2,W2)
axis equal
title(ax2,'Right Plot')

Figure contains 2 axes. Axes 1 with title Left Plot contains an object of type quiver. Axes 2 with title Right Plot contains an object of type quiver.

3차 퀴버 플롯을 만들고 quiver 객체를 반환합니다. 그런 다음 화살촉을 제거하고 각 화살표의 기준에 점 마커를 추가합니다.

[X,Y] = meshgrid(-3:0.5:3,-3:0.5:3);
Z = 0.2*(Y.^2 - X.^2);
[U,V,W] = surfnorm(Z);

q = quiver3(X,Y,Z,U,V,W);
axis equal
q.ShowArrowHead = 'off';
q.Marker = '.';

Figure contains an axes. The axes contains an object of type quiver.

입력 인수

모두 축소

화살표 기준의 x 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 Z, U, V, W가 행렬이면 quiver3XY를 행렬로 확장합니다. 이 경우 size(Z), size(U), size(V), size(W)[length(Y) length(X)]와 같아야 합니다. 벡터를 행렬로 확장하는 것에 대한 자세한 내용은 meshgrid를 참조하십시오.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

화살표 기준의 y 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 Z, U, V, W가 행렬이면 quiver3XY를 행렬로 확장합니다. 이 경우 size(Z), size(U), size(V), size(W)[length(Y) length(X)]와 같아야 합니다. 벡터를 행렬로 확장하는 것에 대한 자세한 내용은 meshgrid를 참조하십시오.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

화살표 기준의 z 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 Z가 행렬이면 size(Z)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

화살표의 x 성분으로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 U가 행렬이면 size(U)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

화살표의 y 성분으로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 V가 행렬이면 size(V)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

화살표의 z 성분으로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 W가 행렬이면 size(W)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

선 스타일, 마커, 색으로, 기호를 포함하는 문자형 벡터 또는 string형으로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다.

LineSpec을 사용하여 마커를 지정하면 quiver3은 화살촉을 표시하지 않습니다. 마커를 지정하고 화살촉을 표시하려면 대신 Marker 속성을 사용하십시오.

예: '--or'은 원 마커로 표시된 빨간색 파선입니다.

선 스타일설명
-실선
--파선
:점선
-.일점 쇄선
마커설명
'o'
'+'플러스 기호
'*'별표
'.'
'x'십자
'_'가로선
'|'세로선
's'정사각형
'd'다이아몬드
'^'위쪽 방향 삼각형
'v'아래쪽 방향 삼각형
'>'오른쪽 방향 삼각형
'<'왼쪽 방향 삼각형
'p'펜타그램
'h'헥사그램
설명

y

노란색

m

자홍색

c

녹청색

r

빨간색

g

녹색

b

파란색

w

흰색

k

검은색

화살표 스케일링 인자로, 양수 또는 'off'로 지정됩니다. 기본적으로 quiver3 함수는 화살표가 중첩되지 않도록 자동으로 스케일링합니다. quiver3 함수는 화살표를 자동으로 스케일링한 후에 스케일링 인자를 적용합니다.

scale을 지정하는 것은 quiver 객체의 AutoScaleFactor 속성을 설정하는 것과 같습니다. 예를 들어, scale2로 지정하면 화살표의 길이가 두 배로 늘어납니다. scale0.5로 지정하면 화살표의 길이가 반으로 줄어듭니다.

자동 스케일링을 비활성화하려면 scale'off' 또는 0으로 지정하십시오. off 또는 0으로 지정하면 Quiver 객체의 AutoScale 속성이 'off'로 설정되고 화살표의 길이는 전적으로 U, V, W에 의해 결정됩니다.

대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 quiver3 함수는 현재 좌표축을 사용합니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 'Color','r','LineWidth','1

참고

여기에 나와 있는 속성은 일부에 불과합니다. 전체 목록을 보려면 Quiver 속성을 참조하십시오.

화살선과 화살촉의 너비로, 0보다 큰 스칼라 숫자형 값으로 지정됩니다(단위: 포인트). 1포인트는 1/72인치와 같습니다. 디폴트 값은 0.5포인트입니다.

예: 0.75

화살촉 표시 여부로, 'on' 또는 'off'나 숫자형 값 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. 값 'on'true와 동일하고 값 'off'false와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState 유형의 on/off 논리값으로 저장됩니다.

  • 'on' — 벡터를 화살촉과 함께 표시합니다.

  • 'off' — 벡터를 화살촉 없이 표시합니다.

화살표 길이에 대한 자동 스케일링 여부로, 'on' 또는 'off'나 숫자형 값 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. 값 'on'true와 동일하고 값 'off'false와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState 유형의 on/off 논리값으로 저장됩니다.

  • 'on' — 화살표 길이를 그리드가 정의된 좌표 데이터에 맞게 스케일링하고, 화살표가 중첩되지 않도록 화살표를 스케일링합니다. 그러면 quiver 또는 quiver3 함수가 AutoScaleFactor를 화살표 길이에 적용합니다.

  • 'off' — 화살표 길이를 스케일링하지 않습니다.

스케일링 인자로, 스칼라로 지정됩니다. 값 2는 화살표 길이를 두 배로 늘입니다. 값 0.5는 화살표 길이를 반으로 줄입니다.

이 속성은 AutoScale 속성이 'on'으로 설정된 경우에만 영향을 미칩니다.

예: 2

실린더 좌표 또는 구면 좌표를 사용하여 3차원 퀴버 플롯을 만들려면 먼저 pol2cart 또는 sph2cart 함수를 사용하여 카테시안 좌표로 변환하십시오.

확장 기능

참고 항목

함수

속성

R2006a 이전에 개발됨