2012-07-23 1 views
5

제가하려고하는 표면 플롯이 있습니다. x는 11 요소 벡터, y는 300 요소 벡터, z는 300 * 11 요소 행렬입니다.Matlab : 표면 플롯이 작동하지 않습니다.

나는 이런 식으로 플롯 할 때 :

surf(x y z) 

표면 그림이 표시되지 않습니다. 축은 있지만 표면 플롯은 없습니다. blank surface plot

그러나, 어떤 이유로이 같은 행렬의 부분 집합의 표면 플롯을 할 경우 :

surf(x y(1:31) z(1:31,:)) 

그런 다음 작동과 줄거리가 표시됩니다. working surface plot

대괄호 안의 숫자를 32로 증가 시키면 작동을 멈 춥니 다. 2시 32 분에서 범위를 변경하면 그것은 작동하므로 매트릭스 크기의 데이터와는 아무 상관이 없습니다.

여기 무슨 일 이니? 어떻게 수정해야합니까?

P.S 코드를 첨부 하겠지만 약간 길고 복잡하며 .txt 파일을 가져 와서 x 및 y 벡터에로드합니다.

+0

첫 번째 명령을 사용하여 플로팅을 시도 할 때 명령 창에 빨간색 텍스트가 있습니까? – Jonas

+0

아니요, 빨간색 글씨 없음 – Eddy

+1

그림의 '렌더러'속성을 변경해보십시오 (painters, zbuffer, OpenGL'). http://www.mathworks.nl/help/techdoc/ ref/figure_props.html – catchmeifyoutry

답변

6

때로는 드로잉을 수행하는 기본적으로 백엔드 인 Matlab의 도형 렌더러를 변경하는 데 도움이 될 수 있습니다. 옵션은 painters, zbufferOpenGL입니다.

그것은 그림 속성이기 때문에, 특정 그림을, 예를 적용 할 수 있습니다

set(gcf(), 'Renderer', 'painters') 

또는 (항상 필요한 경우, 당신은 당신의 user-specific startup.m에 넣을 수)에 default figure properties를 업데이트

set(0, 'Renderer', 'painters') 

마찬가지로, 현재 렌더러 상태를 얻을 사용하는 get 대신 set의 :

get(gcf(), 'Renderer') 

다른 렌더러는 다른 성능 속성을가집니다 (예 : OpenGL 렌더러는 지원되는 경우 하드웨어 가속을 사용할 수 있지만 다른 환경에서도 사용할 수 있습니다. 내 경험상 원격 데스크톱 로그인을 사용하는 동안 getframe()을 사용하는 프레임 캡처가 일부 렌더러에서 작동하지만 전부는 아닙니다). 문제의 정확한 원인을 알 수는 없지만 이상한 변종 중 하나 일 수 있으므로 렌더러를 변경하십시오.Renderer property documentation 가입일

: 스크린 인쇄에 사용

렌더링 방법. MATLAB 그래픽을 렌더링하는 데 사용되는 방법을 선택합니다. 선택 사항은 다음과 같습니다.

painters - 그림에 단순 또는 소형 그래픽 객체 만 포함되어 있으면 MATLAB에서 사용한 원래 렌더링 방법이 더 빠릅니다.

zbuffer - MATLAB은 픽셀 단위로 객체의 색상을 지정하고 MATLAB이 장면에서 볼 수있는 픽셀 만 렌더링하므로 (즉, 전면 정렬 오류를 제거하므로) 그래픽 객체를 더 빠르고 정확하게 그립니다. MATLAB이 복잡한 장면을 표시하는 경우이 방법은 많은 시스템 메모리를 소비 할 수 있습니다.

OpenGL - OpenGL은 많은 컴퓨터 시스템에서 사용할 수있는 렌더러입니다. 이 렌더러는 일반적으로 화가 또는 z 버퍼보다 ​​빠르며 경우에 따라 MATLAB이 일부 시스템에서 사용할 수있는 그래픽 하드웨어에 액세스 할 수 있도록합니다.

1

왼쪽 (y 축) 및 위쪽 (z 축)을 따라 축의 최소/최대 값 변화를 확인합니다. 나는 아직도 거기에 있다고 생각하지만 그것은 아주 작다.

같이 나중에 축을 설정해보십시오 : axis([6E-6 8E-6 9.2E14 10E14 0.96 1.06 -1 1])

참고 : 전자 (6)는 E-8이 될 수도, 난 정말 이미지에서 말할 수 없다 ...

이를 기반으로한다 코드 : axis([xmin xmax ymin ymax zmin zmax cmin cmax])