Consider the following example. It uses the low-level SURFACE function to plot stacked images:
%# create stacked images (I am simply repeating the same image 5 times)
img = load('clown');
I = repmat(img.X,[1 1 5]);
cmap = img.map;
%# coordinates
[X,Y] = meshgrid(1:size(I,2), 1:size(I,1));
Z = ones(size(I,1),size(I,2));
%# plot each slice as a texture-mapped surface (stacked along the Z-dimension)
for k=1:size(I,3)
surface('XData',X-0.5, 'YData',Y-0.5, 'ZData',Z.*k, ...
'CData',I(:,:,k), 'CDataMapping','direct', ...
'EdgeColor','none', 'FaceColor','texturemap')
end
colormap(cmap)
view(3), box on, axis tight square
set(gca, 'YDir','reverse', 'ZLim',[0 size(I,3)+1])
I am using indexed color images (with direct color mapping), but it can be easily changed to use grayscale images (with scaled color mapping).
Now if you want to get the 3D space arranged like you have shown in your question, simply interchange the Y and Z dimensions (images stacked along the Y-dimension instead of the Z-dimension).
In general, to have more control on the viewing angle, use the camera manipulation functions.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…