2014-05-02 29 views
2

我們假設我有三個矩陣X,Y,Z。在matlab中繪製沒有過渡的輪廓

X和Y使用meshgrid創建並表示一個2維網格。 Z包含此網格的值,可以是0,1或2.

每種顏色代表一種顏色(紅色,綠色和藍色)。我想繪製使用這些顏色作爲背景的二維網格。目前,我與contourf這樣做:

contourf(X, Y, Z, [0 1 2]); 
colormap(bgcolors(1:3,:)); 

中的條目1-3包含紅色,綠色和藍色的色彩信息。結果如下: enter image description here

問題是圖上方的小綠色區域。在此區域(1)中Z值不爲綠色,但左邊的值爲藍色(2)和右邊的紅色(0)。 contourf命令改爲使用顏色映射繪製紅色和藍色區域之間的過渡。由於綠色位於色彩映射中的這些值之間,因此過渡將以綠色繪製。

有沒有更好的命令來繪製這樣的數字?我只是想有一個彩色的背景,其中顏色取決於Z.

回答

0

的值。如果您的網格是規則(即類似於meshgrid輸出),您也可以使用imageimagesc或者,如果圖像處理工具箱是可用的,還有imshow以及匹配的色階。

imagesc(Z) 
+0

謝謝,這有效(儘管邊緣不如以上)。 – Simon

+0

這是真的,你只是看到原始數據。然而,爲您提供更平滑輪廓的插值本質上也是爲您添加了不需要的中間綠色條帶。 – mbschenkel