2013-05-28 120 views
0

我在家裏寫了一些代碼來繪製一些3D數據。它運行良好。現在我在辦公室運行相同的代碼,並且出現了一些奇怪的錯誤。看來每個插入的數據點都有一個標籤。MATLAB:繪圖功能中的Bug

但是,這隻發生在一半的情節。左邊的圖表顯示了真實的數據,而右邊的圖形只是這些數據的平滑擬合。左側出現錯誤,右側出現錯誤。

我在同事的機器上運行代碼,它也工作得很好。所以我把乾淨的圖形文件保存在他的機器上,並試圖在我的電腦上打開它們。仍然是同樣的錯誤。所以這不是代碼,但似乎是一些奇怪的顯示錯誤。 有沒有人看過這個? 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, '渲染器', 'zbuffer');

,或者OpenGL圖像看起來更好:

OpenGL軟件

或者是:

OpenGL硬件

查找文檔中的 「OpenGL的」 找一堆開關來 考慮一羣驅動程序錯誤。

+0

+1。閱讀'doc opengl'我認爲'OpenGLClippedImageBug'錯誤解決方法可能適用於這裏,因爲它提到了顏色條 – Amro

+1

謝謝。 'set(gcf,'renderer','zbuffer')'會刪除數字,如果已經存在錯誤的圖。如果在繪圖之前使用'opengl軟件',一切正常。 'opengl硬件'再次產生錯誤。仍然奇怪,這個錯誤只存在於一半的地塊上。 – idono

0

其實zbuffer渲染器工作正常,但在某些情況下是不夠的。

我經常使用透明表面圖,使用gca屬性facealpha設置爲0.5,以便將輪廓圖疊加到它上面。只有使用Opengl渲染器才能正確顯示臉部或邊緣Alpha設置(可能還有其他一些繪圖屬性)。 zbuffer無法繪製透明曲面圖。

當我最近切換到Win8時,主要問題首先引起了我的注意。血腥$比爾'倉鼠爲什麼'門。

Mathworks的補丁將不勝感激。