fsurf
3차원 곡면 플로팅

구문
설명
fsurf(
은 지정된 구간에 플로팅합니다. f
,xyinterval
)x
와 y
둘 다에 동일한 구간을 사용하려면 [min max]
형식의, 요소를 2개 가진 벡터로 xyinterval
을 지정하십시오. 두 값에 각각 다른 구간을 사용하려면 [xmin xmax ymin ymax]
형식의, 요소를 4개 가진 벡터를 지정하십시오.
fsurf(
은 지정된 구간에 플로팅합니다. funx
,funy
,funz
,uvinterval
)u
와 v
둘 다에 동일한 구간을 사용하려면 [min max]
형식의, 요소를 2개 가진 벡터로 uvinterval
을 지정하십시오. 두 값에 각각 다른 구간을 사용하려면 [umin umax vmin vmax]
형식의, 요소를 4개 가진 벡터를 지정하십시오.
fsurf(___,
은 선 스타일, 마커 기호, 곡면 색을 설정합니다. 예를 들어, LineSpec
)'-r'
은 빨간색 선을 지정합니다. 위에 나와 있는 입력 인수의 조합 다음에 이 옵션을 사용하십시오.
fsurf(___,
는 하나 이상의 이름-값 쌍의 인수를 사용하여 surface 속성을 지정합니다. 위에 열거된 구문에 나와 있는 입력 인수의 조합 다음에 이 옵션을 사용하십시오.Name,Value
)
fsurf(
는 현재 좌표축(ax
,___)gca
) 대신 ax
로 지정된 좌표축에 플로팅됩니다.
는 입력값에 따라 fs
= fsurf(___)FunctionSurface
객체나 ParameterizedFunctionSurface
객체를 반환합니다. fs
를 사용하여 특정 곡면의 속성을 쿼리하고 수정할 수 있습니다. 속성 목록은 FunctionSurface 속성나 ParameterizedFunctionSurface 속성를 참조하십시오.
예제
표현식을 3차원 곡면 플로팅하기
곡면 플롯의 구간을 지정하고 조각별 표현식 플로팅하기
다음과 같이 조각별 표현식을 플로팅합니다.
플로팅 구간은 입니다.
플로팅 구간을 fsurf
의 두 번째 입력 인수로 지정합니다. 동일한 좌표축의 다른 구간에 여러 곡면을 플로팅하는 경우 축 제한이 모든 데이터를 포함하도록 조정됩니다.
f1 = @(x,y) erf(x)+cos(y); fsurf(f1,[-5 0 -5 5]) hold on f2 = @(x,y) sin(x)+cos(y); fsurf(f2,[0 5 -5 5]) hold off
파라미터화된 곡면 플로팅하기
다음과 같이 파라미터화된 곡면을 플로팅합니다.
범위는 와 입니다. camlight
를 사용하여 곡면에 조명을 추가합니다.
r = @(u,v) 2 + sin(7.*u + 5.*v); funx = @(u,v) r(u,v).*cos(u).*sin(v); funy = @(u,v) r(u,v).*sin(u).*sin(v); funz = @(u,v) r(u,v).*cos(v); fsurf(funx,funy,funz,[0 2*pi 0 pi]) camlight
제목과 축 레이블 추가하고 눈금 지정하기
와 에 대해 부터 까지의 구간에 3차원 곡면 를 플로팅합니다. 제목과 축 레이블을 추가하고, 좌표축 윤곽선을 표시합니다.
fsurf(@(x,y) y.*sin(x)-x.*cos(y),[-2*pi 2*pi]) title('ysin(x) - xcos(y) for x and y in [-2\pi,2\pi]') xlabel('x'); ylabel('y'); zlabel('z'); box on
axes 객체의 XTickLabel
속성과 XTick
속성을 사용하여 x축 눈금 값과 관련 레이블을 설정합니다. gca
를 사용하여 axes 객체에 액세스합니다. 마찬가지로, y축 눈금 값과 관련 레이블을 설정합니다.
ax = gca; ax.XTick = -2*pi:pi/2:2*pi; ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',... '\pi/2','\pi','3\pi/2','2\pi'}; ax.YTick = -2*pi:pi/2:2*pi; ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',... '\pi/2','\pi','3\pi/2','2\pi'};
Surface 속성 지정하기
의 다양한 값에 대해 각기 다른 선 스타일을 사용하여 파라미터 곡면 , , 를 플로팅합니다. 의 경우 곡면 가장자리에 녹색 파선을 사용합니다. 의 경우 EdgeColor
속성을 'none'
으로 설정하여 가장자리를 비활성화합니다.
funx = @(u,v) u.*sin(v); funy = @(u,v) -u.*cos(v); funz = @(u,v) v; fsurf(funx,funy,funz,[-5 5 -5 -2],'--','EdgeColor','g') hold on fsurf(funx,funy,funz,[-5 5 -2 2],'EdgeColor','none') hold off
생성 후 곡면 수정하기
다음과 같이 파라미터 곡면을 플로팅합니다.
파라미터화된 함수 surface 객체를 변수에 할당합니다.
x = @(u,v) exp(-abs(u)/10).*sin(5*abs(v)); y = @(u,v) exp(-abs(u)/10).*cos(5*abs(v)); z = @(u,v) u; fs = fsurf(x,y,z)
fs = ParameterizedFunctionSurface with properties: XFunction: @(u,v)exp(-abs(u)/10).*sin(5*abs(v)) YFunction: @(u,v)exp(-abs(u)/10).*cos(5*abs(v)) ZFunction: @(u,v)u EdgeColor: [0 0 0] LineStyle: '-' FaceColor: 'interp' Use GET to show all properties
객체의 URange
속성을 설정하여 u
에 대한 플로팅 구간을 [-30 30]
으로 변경합니다. FaceAlpha
속성을 0(투명)과 1(불투명) 사이의 값으로 설정하여 곡면에 투명도를 추가합니다.
fs.URange = [-30 30]; fs.FaceAlpha = .5;
곡면 플롯 아래에 등고선 표시하기
'ShowContours'
옵션을 'on'
으로 설정하여 곡면 플롯 아래에 등고선을 표시합니다.
f = @(x,y) 3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)... - 1/3*exp(-(x+1).^2 - y.^2); fsurf(f,[-3 3],'ShowContours','on')
곡면 플롯의 해상도 제어하기
'MeshDensity'
옵션을 사용하여 곡면 플롯의 해상도를 제어합니다. 'MeshDensity'
값을 키우면 더욱 부드럽고 정확한 플롯을 만들 수 있으며 줄이면 플로팅 속도를 높일 수 있습니다.
타일 형식 차트 레이아웃에 두 개의 플롯을 만듭니다. 첫 번째 플롯에서 파라미터 곡면 , , 을 표시합니다. 곡면에 큰 간격이 있습니다. 두 번째 플롯에서 'MeshDensity'
를 40
으로 늘려 이 문제를 수정하십시오. fsurf
는 간격을 채우는데, 이를 통해 'MeshDensity'
값을 늘리면 해상도가 증가함을 알 수 있습니다.
tiledlayout(2,1) nexttile fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s)) view(-172,25) title('Default MeshDensity = 35') nexttile fsurf(@(s,t) sin(s), @(s,t) cos(s),... @(s,t) t/10.*sin(1./s),'MeshDensity',40) view(-172,25) title('Increased MeshDensity = 40')
입력 인수
f
— 플로팅할 3차원 함수
함수 핸들
플로팅할 3차원 함수로, 명명된 함수나 익명 함수에 대한 함수 핸들로 지정됩니다.
z = f(x,y)
형식의 함수를 지정해야 합니다. 이 함수는 행렬 입력 인수 두 개를 받고 같은 크기를 갖는 행렬 출력 인수 하나를 반환해야 합니다. 최적의 성능을 구현하려면 행렬 연산자 대신 배열 연산자를 사용하십시오. 예를 들어, *(mtimes
) 대신 .*
(times
)를 사용하십시오.
예: f = @(x,y) sin(x) + cos(y);
xyinterval
— x
와 y
에 대한 플로팅 구간
[-5 5 -5 5]
(디폴트 값) | [min max]
형식의 벡터 | [xmin xmax ymin ymax]
형식의 벡터
x
와 y
의 플로팅 구간으로, 다음 형식 중 하나로 지정됩니다.
[min max]
형식의 벡터 —x
와y
둘 다에 구간[min max]
를 사용합니다.[xmin xmax ymin ymax]
형식의 벡터 —x
에 구간[xmin xmax]
를,y
에 구간[ymin ymax]
를 사용합니다.
funx
— x 좌표의 파라미터 함수
함수 핸들
x 좌표의 파라미터 함수로, 명명된 함수나 익명 함수에 대한 함수 핸들로 지정됩니다.
x = funx(u,v)
형식의 함수를 지정해야 합니다. 이 함수는 행렬 입력 인수 두 개를 받고 같은 크기를 갖는 행렬 출력 인수 하나를 반환해야 합니다. 최적의 성능을 구현하려면 행렬 연산자 대신 배열 연산자를 사용하십시오. 예를 들어, *(mtimes
) 대신 .*
(times
)를 사용하십시오.
예: funx = @(u,v) u.*sin(v);
funy
— y 좌표의 파라미터 함수
함수 핸들
y 좌표의 파라미터 함수로, 명명된 함수나 익명 함수에 대한 함수 핸들로 지정됩니다.
y = funy(u,v)
형식의 함수를 지정해야 합니다. 이 함수는 행렬 입력 인수 두 개를 받고 같은 크기를 갖는 행렬 출력 인수 하나를 반환해야 합니다. 최적의 성능을 구현하려면 행렬 연산자 대신 배열 연산자를 사용하십시오. 예를 들어, *(mtimes
) 대신 .*
(times
)를 사용하십시오.
예: funy = @(t) @(u,v) -u.*cos(v);
funz
— z 좌표의 파라미터 함수
함수 핸들
z 좌표의 파라미터 함수로, 명명된 함수나 익명 함수에 대한 함수 핸들로 지정됩니다.
z = funz(u,v)
형식의 함수를 지정해야 합니다. 이 함수는 행렬 입력 인수 두 개를 받고 같은 크기를 갖는 행렬 출력 인수 하나를 반환해야 합니다. 최적의 성능을 구현하려면 행렬 연산자 대신 배열 연산자를 사용하십시오. 예를 들어, *(mtimes
) 대신 .*
(times
)를 사용하십시오.
예: funz = @(u,v) v;
uvinterval
— u
와 v
에 대한 플로팅 구간
[-5 5 -5 5]
(디폴트 값) | [min max]
형식의 벡터 | [umin umax vmin vmax]
형식의 벡터
u
와 v
의 플로팅 구간으로, 다음 형식 중 하나로 지정됩니다.
[min max]
형식의 벡터 —u
와v
둘 다에 구간[min max]
를 사용합니다.[umin umax vmin vmax]
형식의 벡터 —u
에 구간[umin umax]
를,v
에 구간[vmin vmax]
를 사용합니다.
ax
— axes 객체
axes 객체
axes 객체입니다. axes 객체를 지정하지 않으면 fsurf
는 현재 좌표축을 사용합니다.
LineSpec
— 선 스타일, 마커, 색
string형 스칼라 | 문자형 벡터
선 스타일, 마커, 색으로, 기호를 포함하는 string형 스칼라 또는 문자형 벡터로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다.
예: "--or"
은 원 마커로 표시된 빨간색 파선입니다.
선 스타일 | 설명 | 결과 선 |
---|---|---|
"-" | 실선 |
|
"--" | 파선 |
|
":" | 점선 |
|
"-." | 일점 쇄선 |
|
마커 | 설명 | 결과로 생성되는 마커 |
---|---|---|
"o" | 원 |
|
"+" | 플러스 기호 |
|
"*" | 별표 |
|
"." | 점 |
|
"x" | 십자 |
|
"_" | 가로선 |
|
"|" | 세로선 |
|
"square" | 정사각형 |
|
"diamond" | 다이아몬드 |
|
"^" | 위쪽 방향 삼각형 |
|
"v" | 아래쪽 방향 삼각형 |
|
">" | 오른쪽 방향 삼각형 |
|
"<" | 왼쪽 방향 삼각형 |
|
"pentagram" | 펜타그램 |
|
"hexagram" | 헥사그램 |
|
색 이름 | 짧은 이름 | RGB 3색 | 모양 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'Marker','o','MarkerFaceColor','red'
여기에 나와 있는 속성 목록은 일부에 불과합니다. 전체 목록을 보려면 FunctionSurface 속성나 ParameterizedFunctionSurface 속성를 참조하십시오.
MeshDensity
— 방향별 계산 지점 개수
35 (디폴트 값) | 숫자
방향별 계산 지점 개수로, 숫자로 지정됩니다. 디폴트 값은 35
입니다. fsurf
객체가 적응형 실행을 사용하므로 실제 계산 지점 개수는 더 많습니다.
예: 100
ShowContours
— 플롯 아래 등고선 플롯 표시
'off'
(디폴트 값) | on/off 논리값
플롯 아래 등고선 플롯 표시 여부로, 'on'
또는 'off'
나 숫자형 값 또는 논리값 1
(true
) 또는 0
(false
)으로 지정됩니다. 값 'on'
은 true와 동일하고 값 'off'
는 false
와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState
유형의 on/off 논리값으로 저장됩니다.
EdgeColor
— 선 색
[0 0 0]
(디폴트 값) | 'interp'
| RGB 3색 | 16진수 색 코드 | 'r'
| 'g'
| 'b'
| ...
선 색으로, 'interp'
, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 RGB 3색 값인 [0 0 0]
은 검은색에 해당합니다. 'interp'
값은 ZData
값에 따라 가장자리에 채색합니다.
사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.
RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는
[0,1]
이어야 합니다(예:[0.4 0.6 0.7]
).16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(
#
)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0
에서F
사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드"#FF8800"
,"#ff8800"
,"#F80"
및"#f80"
은 모두 동일합니다.
몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.
색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 해당 없음 | 해당 없음 | 해당 없음 | 색 없음 |
다음은 MATLAB®이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다.
RGB 3색 | 16진수 색 코드 | 모양 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
LineStyle
— 선 스타일
"-"
(디폴트 값) | "--"
| ":"
| "-."
| "none"
선 스타일로, 다음 표에 나열된 옵션 중 하나로 지정됩니다.
선 스타일 | 설명 | 결과 선 |
---|---|---|
"-" | 실선 |
|
"--" | 파선 |
|
":" | 점선 |
|
"-." | 일점 쇄선 |
|
"none" | 선 없음 | 선 없음 |
LineWidth
— 선 너비
0.5
(디폴트 값) | 양의 값
선 너비로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다. 선에 마커가 있는 경우 선 너비는 마커 가장자리에도 영향을 미칩니다.
선 너비는 픽셀 너비보다 가늘 수 없습니다. 선 너비를 시스템의 픽셀 너비보다 작은 값으로 설정할 경우 선은 1픽셀 너비로 표시됩니다.
Marker
— 마커 기호
"none"
(디폴트 값) | "o"
| "+"
| "*"
| "."
| ...
마커 기호로, 다음 표에 나열된 값 중 하나로 지정됩니다. 기본적으로 객체는 마커를 표시하지 않습니다. 마커 기호를 지정하면 각 데이터 점이나 꼭짓점에 마커가 추가됩니다.
마커 | 설명 | 결과로 생성되는 마커 |
---|---|---|
"o" | 원 |
|
"+" | 플러스 기호 |
|
"*" | 별표 |
|
"." | 점 |
|
"x" | 십자 |
|
"_" | 가로선 |
|
"|" | 세로선 |
|
"square" | 정사각형 |
|
"diamond" | 다이아몬드 |
|
"^" | 위쪽 방향 삼각형 |
|
"v" | 아래쪽 방향 삼각형 |
|
">" | 오른쪽 방향 삼각형 |
|
"<" | 왼쪽 방향 삼각형 |
|
"pentagram" | 펜타그램 |
|
"hexagram" | 헥사그램 |
|
"none" | 마커 없음 | 해당 없음 |
MarkerSize
— 마커 크기
6
(디폴트 값) | 양의 값
마커 크기로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다.
출력 인수
fs
— 하나 이상의 FunctionSurface
객체 또는 ParameterizedFunctionSurface
객체
스칼라 | 벡터
하나 이상의 FunctionSurface
객체 또는 ParameterizedFunctionSurface
객체로, 스칼라나 벡터로 반환됩니다.
fsurf(f)
구문이나 이 구문의 변형을 사용하는 경우fsurf
는FunctionSurface
객체를 반환합니다.fsurf(funx,funy,funz)
구문이나 이 구문의 변형을 사용하는 경우fsurf
는ParameterizedFunctionSurface
객체를 반환합니다.
이러한 객체를 사용하여 특정 곡면의 속성을 쿼리하고 수정할 수 있습니다. 속성 목록은 FunctionSurface 속성와 ParameterizedFunctionSurface 속성를 참조하십시오.
버전 내역
R2016a에 개발됨
참고 항목
함수
속성
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)