2013-01-24 388 views
4

我有一個矩陣N * N,有三個不同的值,例如0,0.5,1。我怎樣才能在屏幕上打印圖像,其中每個值代表不同的顏色? 重要:矩陣是一個循環,所以值可能會改變(我想每次迭代打印矩陣)。MATLAB:如何設置矩陣的顏色

我試圖使用色彩地圖,它工作正常,如果所有三個值都在矩陣中,但是隻有一個或兩個值保留時,顏色已更改。

我想如何工作:值爲0,0.5,1的矩陣在屏幕上打印一個矩陣,每個單元格包含0個黑色,0.5個綠色,1個黃色。

非常感謝!

+0

前幾天有一個[問題](http://stackoverflow.com/questions/14347792/images-from-matrix-in-matlab/14348724#14348724)沿着相同的路線。 –

回答

5

剛剛創建自己的顏色映射僅具有三個可能的值:

a = [1 0.5 0;1 .5 0;0.5 0 1]; 
b = [1 0 1;1 1 0;0 0 1]; 
cmap = [0,0,0;0,1,0;1,1,0]; 
clims = [0 1]; 
imagesc(a,clims); colormap(cmap); 
imagesc(b,clims); colormap(cmap); 

a給出:

a

B給出:

enter image description here

+0

謝謝你的工作很不錯,但還是有些不好。 如果矩陣是全1,或零,或任何其他數字,我得到一個綠色的印刷矩陣,而不是我想要的顏色。 對於一個完整的零矩陣,我想得到黑色矩陣,但輸出是綠色的。 你知道該怎麼辦? – Kickapoo

+0

請分享您的密碼 – Gilad

+0

a = [0 0 0; 0 0 0; 0 0 0]; b = [1 1 1; 1 1 1; 1 1 1]; cmap = [0,0,0; ​​0,1,0; 1,1,0]; imagesc(a);顏色表(CMAP); imagesc(b);顏色表(CMAP); 我想要一個全是黑色的,而且b全部是黃色的 而不是我得到它們兩個都是綠色的 – Kickapoo

0

我會嘗試可能imagsec。或者對顏色進行任何其他縮放。從灰度開始。 RGB將變得更復雜