2015-04-14 137 views
2

我想繪製我的三維矩陣的每個切片,以顯示第三維的差異。然而,我只能設法將它們彼此打成一片,我想要一個3D圖,其中明確表示矩陣的切片實際上是堆疊的。我爲兩層到目前爲止的代碼是繪製切片中的三維矩陣 - MATLAB

visualmatrix=zeros(10); 
visualmatrix(1:5,1:5)=1; 
visualmatrix2=zeros(10); 

visualmatrix2(1:8,1:8)=1; 
subplot(1,2,1) 
[r,c] = size(visualmatrix);       %# Get the matrix size 
imagesc((1:c)+0.5,(1:r)+0.5,-visualmatrix);   %# Plot the image 
colormap(gray);        %# Use a gray colormap 
axis equal         %# Make axes grid sizes equal 
set(gca,'XTick',1:(c+1),'YTick',1:(r+1),... %# Change some axes properties 
     'XLim',[1 c+1],'YLim',[1 r+1],... 
     'GridLineStyle','-','XGrid','on','YGrid','on'); 

subplot(1,2,2) 
[r,c] = size(visualmatrix2);       %# Get the matrix size 
imagesc((1:c)+0.5,(1:r)+0.5,-visualmatrix2);   %# Plot the image 
colormap(gray);        %# Use a gray colormap 
axis equal         %# Make axes grid sizes equal 
set(gca,'XTick',1:(c+1),'YTick',1:(r+1),... %# Change some axes properties 
     'XLim',[1 c+1],'YLim',[1 r+1],... 
     'GridLineStyle','-','XGrid','on','YGrid','on'); 

colorbar 
colorbar('Ticks',[-1,0],... 
     'TickLabels',{'Equal','Different'}) 
suptitle('Illustration of the concept') 

這導致了下面的圖片 enter image description here

有一個簡單的方法,使之與即5層的3D繪圖想象嗎? 預先感謝您。

+1

什麼? http://uk.mathworks.com/help/matlab/ref/slice.html?refresh=true –

+1

謝謝。經過一些調整,它做我想要的:h = slice(justtest,[],[],1:size(justtest,3)),colormap(gray),axis tight,set(gca,'Ztick',[ 1 2]) zlabel('Slice of \ eta') set(h,'FaceAlpha',。5) –

回答

4

在Matlab中有一個很好的功能。它被稱爲slice

它繪製的東西,如:關於`slice`功能

enter image description here

+2

這樣一個華麗的'jet'!感謝您傳播鎮上最好的色彩地圖的傳福音! – Adriaan

+1

@Adriaan @ $$洞哈哈 – rayryeng