2012-12-21 129 views
6

我想根據其包含的值來可視化矩陣。我有一個單元格,它包含11個矩陣,每個矩陣有4列,分別是x,y,z(座標)及其值。我想用位置x,y,z將這個值可視化,並根據這些值定義我自己的顏色映射,然後顯示顏色條。我想使用jet作爲色彩地圖。我想用藍色來描述最大值,紅色是顏色貼圖上的最小值。最大值和最小值之間的值具有紅色到藍色之間的顏色。從自定義顏色映射中的矩陣顯示值(Matlab)

這是我已經嘗試過的代碼:

figure; 
hold on 
for i=1:length(diameter_lca) 
    L2 = diameter_lca{i}; 
    dl1 = find(L2(:,4) > minimal_lca & L2(:,4)<2);%diameter 0-2 
    dl2 = find(L2(:,4) >= 2 & L2(:,4) <= maksimal_lca);%diameter>2-maksimal 
    x=L2(:,1); 
    y=L2(:,2); 
    z=L2(:,3); 
    plot3(y(dl1),x(dl1),z(dl1),'*','Color','r'); 
    plot3(y(dl2),x(dl2),z(dl2),'*','Color','b'); 
end 
daspect([0.488281 0.488281 0.625000]); 
view(3); axis tight 
camlight 

在上述那些代碼,我做的是可視化從每個矩陣的第四列中的值,然後我做了一個條件,其是如果該值是在0-2之間,我給了紅色,當它在第4列的2最大值之間時,我給了藍色。

現在,我需要顯示colormap jet中每個矩陣的第4列中的每個值,而沒有任何這樣的條件。

回答

1

最簡單的辦法是使用scatter3

%# make jet colormap from red to blue 
cmap = flipud(jet(128)); 

%# plot values 
figure, 
scatter3(L(:,1),L(:,2),L(:,3),[],L(:,4),'marker','*') 

colormap(cmap) 
colorbar 
+0

它的工作原理!非常感謝 :)。但我還有一個問題。如果我想將它顯示爲一行或使用破折號而不是星號(*) –

+0

那麼在這種情況下,您可能需要下載並使用[cline](http://www.mathworks.com/matlabcentral/fileexchange/8597) )從Matlab文件交換。另外,如果您發現我的答案有幫助,請考慮投票和/或接受它。 – Jonas

+0

噢,我很抱歉,我接受你的回答,並加強它。非常感謝。哦,那個cline,我也試過,但是你給我的方法(scatter3)比cline效果更好。我無法在這裏上傳結果圖像,但我更喜歡你的方法。非常感謝 :) –