2016-02-18 141 views
0

嘿,我有兩個大的矩陣400×400。我想創建一個熱圖/色彩地圖。當前代碼:創建在Matlab熱圖/顏色表,通過混合兩種顏色

res = matrix_1*256/2 + matrix_2*256/2; 
%res = res -max(max(res)); 
HeatMap(res) 
surf(res,'EdgeColor','none'); 
view(0,90); 
colormap(gray); 
colorbar 
disp('done'); 

其中熱圖功能每個人都可以查找。但要給出第二個結果的可視化結果如下: enter image description here

但是,這並不讓我知道哪個矩陣占主導地位。但只有兩者都是主導(白色),兩者不是主導(黑暗)。我想製作一個使用融合數據的情節。例如。矩陣1是紅色細微差別和基質2是綠色的細微差別:

RGB = [matrix_1(I,II),matrix_2(I,II),0]

然後我想使使用rgb表示的顏色的2D圖。這可能嗎 ?我已經着眼於製作自己的色彩地圖(但你猜測沒有好的結果)。

我找到了像this (how-to-create-an-interpolated-colormap-or-color-palette-from-two-colors)create-a-colormap-in-matlab這樣的解決方案,但是我該如何爲2D圖中的每個點指定一個特定的顏色?

回答

1

像這樣:

RGB = cat(3, matrix_1, matrix_2, zeros(size(matrix_1))); 
imshow(RGB) 

現在的圖表會變黑既不佔主導地位,其中紅色是matrix_1matrix_2不,綠色其中matrix_2只是matrix_1不和黃色,他們都佔據主導地位。

如果你願意,你甚至可以將其轉換回索引圖像,並使用rgb2ind得到colormap認爲顏色是這樣,然後使用你原來的res的高度(注意,不再需要創建一個表面圖規模這一點)和新的索引圖像(ind)來指定不再受高度

res = (matrix_1 + matrix_2)/2; 
[ind, map] = rgb2ind(RGB); 
surf(res, ind, 'EdgeColor','none'); 
colormap(map) 
colorbar 
+0

即使你說:不知道enitrely goverened的顏色!它是現貨! Thx但片段適用於不同的場景。 :) – JTIM