2013-05-28 4 views
0

집에서 일부 3D 데이터를 플롯하기 위해 일부 코드를 작성했습니다. 괜찮 았어. 이제 사무실에서 같은 코드를 실행했고 이상한 버그가 있습니다. 그것은 삽입 된 각 데이터 포인트에 대한 레이블이있는 것 같습니다.MATLAB : 플롯 기능의 버그

그러나 이것은 플롯의 절반에서만 발생합니다. 왼쪽 그림은 실제 데이터를 보여주고 오른쪽 그림은이 데이터의 부드럽게 맞춘 것입니다. 왼쪽 하나는 오류를 가져오고 오른쪽 하나는 오류를 가져옵니다.

동료의 컴퓨터에서 코드를 실행했는데 제대로 작동했습니다. 그래서 깨끗한 그림 파일을 컴퓨터에 저장하고 PC에서 열려고했습니다. 여전히 같은 버그. 그래서 코드는 아니지만 이상한 버그를 나타내는 것 같습니다. 이전에 누구에게 보았습니까? Numbers in Plot

figure(1); 
s1=gca; 
surf(t_matrix,f_matrix,alpha_matrix) 
colorbar 
figure(2); 
s2=gca; 
surf(t_matrix2,f_matrix2,alpha_matrix2) 
colorbar 

그냥이 코드입니다. 디버깅을하면 컬러 바를 처음 호출 한 후 숫자가 나타납니다. 하지만 두 번째 경우에는 그렇지 않습니다. 집에있는 Matlab 버전은 2013a이지만 사무실과 내 동료의 버전은 모두 2012b입니다.

+0

컴퓨터의 matlab 그림 속성의 기본 설정을 확인하십시오. – Shai

+4

MATLAB의 버전은 무엇입니까? – HebeleHododo

+2

이 문제를 해결할 수있는 코드를 게시 할 수 있습니까? – Shai

답변

5

이것은 버그 인 것 같습니다. a thread on MATLAB Answers이 있습니다.

월 시몬이 허용 대답은 OpenGL 드라이버에 의해

이 될 수있는 원인이다. 최신 그래픽 카드 드라이버를 설치 했습니까?

해결 방법이 될 수 있습니다

세트 (GCF, '렌더링', 'z 버퍼');

혹은 OpenGL 소프트웨어를 : 문서에서 "OpenGL을"에 대한

OpenGL 하드웨어

봐가 에 스위치의 무리를 찾을 수 고려해야

또는 OpenGL을 좋네요 보이는 경우

한 무리의 드라이버 버그.

+0

+1.'doc opengl'을 읽는 중'OpenGLClippedImageBug' 버그 해결 방법이 여기에 적용될 수 있습니다. 색상 막대가 언급되어 있기 때문에 – Amro

+1

감사합니다. 'set (gcf, 'renderer', 'zbuffer')'는 도청 된 플롯이 이미 존재하는 경우 숫자를 제거합니다. 플롯하기 전에'opengl software '를 사용하면 모든 것이 잘 동작합니다. 'opengl hardware'는 버그를 다시 만듭니다. 이 버그는 플롯의 절반에만 존재한다는 것이 아직도 이상합니다. – idono

0

사실 zbuffer 렌더러는 정상적으로 작동하지만 경우에 따라서는 충분하지 않습니다.

종종 윤곽 플롯을 겹치기 위해 0.5로 설정된 gca 속성 facealpha를 사용하여 투명한 표면 플롯으로 작업하는 데 사용합니다. Face 또는 Edge 알파 설정 (다른 일부 플롯 속성)은 Opengl 렌더러에서만 올바르게 표시됩니다. z 버퍼는 투명한 표면 그림을 그릴 수 없습니다.

내가 최근에 Win8로 전환했을 때 주요 문제가 처음 발견되었습니다. 피 묻은 $ 빌 '햄스터 왜'게이트.

Mathworks의 패치가 크게 감사하겠습니다.