2015-05-04 152 views
1

因此,我已經有了一個10×10矩陣randMat具有1和4和零的另一個陣列地圖這是具有RGB值四種顏色即行對於每種顏色之間的隨機整數三列紅色,綠色和藍色的數量。色彩映射表紅色色調

randMat = randi(4,10) 
map = zeros(4,3); 

使用for循環,我分配到RGB值的紅色陰影紅色值從地圖中的每一行1/4到4/4 = 1,所以每行應該有一個紅色值的i/4和藍色和綠色值爲零。我也做了地圖顏色表

for i=1:4 
    map(i,1) = i/4; 
end 

colormap(map); 

現在的問題是我希望顯示randMat在4種紅色,但它一直顯示爲藍色。我錯過了什麼?

image(randMat) 
axis off 
axis square 
+1

我在運行代碼時變紅。是否有其他干擾你的色彩地圖? – siliconwafer

+1

它適用於我。你不應該關閉在'colormap(map)'之後打開的圖形,或者你可以在'image(randMat)' – Adiel

+0

之後寫'colormap',這很奇怪......所以當我把代碼的最後部分放在它自己的部分即使用%%它變藍,但沒有它,變紅。無論如何感謝幫助球員〜 – Kennan

回答

0

正如您正在使用部分,我可以想象的唯一解釋是您不運行生成色圖的部分。

clc 
clear 
close all 

randMat = randi(4,10) 
map = zeros(4,3) 
%% 
for i=1:4 
    map(i,1) = i/4; 
end 

colormap(map); 

%% 
image(randMat) 
axis off 
axis square 

如果您運行第一部分,然後運行最後一部分,圖像顯示爲藍色。如果後續運行全部三個,它會顯示爲紅色,當然,如果一起運行,它也會顯示爲紅色。我從自己的經驗中知道,在使用分區時,經常發生的情況是您只需使用Crtl + 輸入即可運行單個分區。所以只要確保運行所有相關的部分。