2016-12-12 8 views
1

저는 의 2D 배열을 가지고 있으며 surf을 사용하여 그려 봅니다. 표면 플롯에는 data의 요소가 0.9*max(max(data))보다 큰 영역이 있습니다. 나는 그 지역을 '개요'하고 싶다. 어떻게해야합니까?Matlab의 표면 플롯에서 영역을 그리는 법

I는 I 수 "그늘"영역 유모가 아님 data_copy의 좌표를 플롯 원래 표면 그림과 함께 산점도를 사용하는 경우 나

data_copy = data; 
data_copy(data<0.9) = nan; 

이어서 입력하면. 그러나 나는 그 지역의 '경계'를 원한다. 그렇게하는 방법?

답변

0

잘 모르겠다. 정확히 원하는 것이지만 다음을 시도해 볼 수 있습니다. 간단한 예제 - f(x,y)=sin(2 pi x)을 고려해보십시오. 플롯에서 모서리를 제거 할 수 있습니다 (많은 양의 데이터가있는 경우 지저분 해 보입니다). 그렇다면, 당신은 명시 적으로 색상을 설정할 수 있습니다 : 하나 개의 색상으로 관심 영역을 그리고 서로 다른 모든 데이터 : 당신의 경계가 어디

data=repmat(sin(2*pi*(0:0.01:1)),numel(0:0.01:1),1); %define data 
s=surf(data) % plot 
s.EdgeAlpha=0; % remove edges 
s.CData(data>=0.9*max(max(data)))=0; %set the color for the region of interest 
s.CData(data<0.9*max(max(data)))=1; %set different color for all other data 

는 지금은 분명하다.

+0

보통 나는 다른 위치에서 색상이 어떻게 변하는 지보고 싶기 때문에'view (2)'를 설정합니다. 귀하의 예에서는 경계선에 대해 두 개의 수직선 또는 두 개의 수평선 (또는 둘 다)을보고 싶습니다. 그리고 그 경계선 내에서 보통의 색상을보고 싶습니다. – Physicist

+0

3D 플롯이 필요합니까 (서핑)? 등고선 플롯을 사용하고 관심있는 윤곽선을 명시 적으로 설정할 수 있습니다. –

+0

플롯은 진동 + ve 및 -ve 부분 (웨이브와 같은)으로 구성됩니다. 윤곽선을 사용하고 지정된 윤곽선 레벨 만 표시하는 경우, 나는 여전히 그 윤곽선에 '원'을 많이 만들었지 만 모두 음모의 영역에 단단히 묶여 있습니다. 그 지역의 개요가 필요합니다. 많은 서클이 필요하지 않습니다. – Physicist