在 X-Z 平面上显示图像(而不是默认的 X-Y)
Display an image on the X-Z plane (instead of the default X-Y)
我可以使用 imagesc
在 X-Y 平面上绘制图像,但现在我想将它放在 X-Z 平面上以供进一步使用。有什么办法吗?谢谢!
我会使用 surface
而不是 imagesc
:
INPUT = [3,4,5
4,5,6];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure();
ZZ = padarray(INPUT,[1 1],0,'post'); % See note #2
[XX,YY] = meshgrid((1:size(INPUT,2)+1)-0.5,(1:size(INPUT,1)+1)-0.5);
% imagesc
subplot(3,1,1); imagesc(INPUT); xlim([0 4]); ylim([0.5 2.5]);
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); grid on;
title('imagesc');
% Normal (X-Y):
subplot(3,1,2); surface(XX,YY,0*XX,ZZ,'EdgeColor','none','FaceColor','flat');
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); axis ij; box on; grid on;
title('X-Y surface'); caxis([min(INPUT(:)),max(INPUT(:))]);
% Rotated (X-Z):
subplot(3,1,3); surface(XX,0*ZZ,YY,ZZ,'EdgeColor','none','FaceColor','flat');
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); axis ij; box on; grid on;
title('X-Z surface'); caxis([min(INPUT(:)),max(INPUT(:))]);
几点说明:
- 您可能需要
flipud
或 fliplr
2nd surface
图中的一些输入(取决于您如何定义Y -> Z
过渡)。
- 在表示方面输出是相同的,但是,如果您尝试比较节点的值,您将不会在
X-Y
之间得到相同的结果和 imagesc
输出。这样做的原因是表面是使用顶点定义的,而 Image 对象是使用每个正方形中心的值定义的。
输出:
我可以使用 imagesc
在 X-Y 平面上绘制图像,但现在我想将它放在 X-Z 平面上以供进一步使用。有什么办法吗?谢谢!
我会使用 surface
而不是 imagesc
:
INPUT = [3,4,5
4,5,6];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure();
ZZ = padarray(INPUT,[1 1],0,'post'); % See note #2
[XX,YY] = meshgrid((1:size(INPUT,2)+1)-0.5,(1:size(INPUT,1)+1)-0.5);
% imagesc
subplot(3,1,1); imagesc(INPUT); xlim([0 4]); ylim([0.5 2.5]);
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); grid on;
title('imagesc');
% Normal (X-Y):
subplot(3,1,2); surface(XX,YY,0*XX,ZZ,'EdgeColor','none','FaceColor','flat');
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); axis ij; box on; grid on;
title('X-Y surface'); caxis([min(INPUT(:)),max(INPUT(:))]);
% Rotated (X-Z):
subplot(3,1,3); surface(XX,0*ZZ,YY,ZZ,'EdgeColor','none','FaceColor','flat');
view([-50 50]); xlabel('x'); ylabel('y'); zlabel('z'); axis ij; box on; grid on;
title('X-Z surface'); caxis([min(INPUT(:)),max(INPUT(:))]);
几点说明:
- 您可能需要
flipud
或fliplr
2ndsurface
图中的一些输入(取决于您如何定义Y -> Z
过渡)。 - 在表示方面输出是相同的,但是,如果您尝试比较节点的值,您将不会在
X-Y
之间得到相同的结果和imagesc
输出。这样做的原因是表面是使用顶点定义的,而 Image 对象是使用每个正方形中心的值定义的。
输出: