Image 在X-Z平面上显示图像(而不是默认的X-Y平面)
我可以使用Image 在X-Z平面上显示图像(而不是默认的X-Y平面),image,matlab,plot,matlab-figure,axes,Image,Matlab,Plot,Matlab Figure,Axes,我可以使用imagesc在X-Y平面上绘制图像,但现在我想将其放在X-Z平面上以供进一步使用。有什么办法吗?谢谢 我将使用而不是imagesc: INPUT = [3,4,5 4,5,6]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(); ZZ = padarray(INPUT,[1 1],0,'post'); % See note #2 [XX,YY]
imagesc
在X-Y平面上绘制图像,但现在我想将其放在X-Z平面上以供进一步使用。有什么办法吗?谢谢 我将使用而不是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
第二个曲面
绘图中的一些输入(取决于您如何定义Y->Z
过渡)X-Y
和imagesc
输出之间获得相同的结果。原因是曲面是使用顶点定义的,而图像对象是使用每个正方形中心的值定义的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
第二个曲面
绘图中的一些输入(取决于您如何定义Y->Z
过渡)X-Y
和imagesc
输出之间获得相同的结果。原因是曲面是使用顶点定义的,而图像对象是使用每个正方形中心的值定义的@dinex对前3个输入进行另一种排列:
XX,YY,0*ZZ
YY,0*ZZ,XX
0*ZZ,XX,YY:)
@Dev iL但如果我的输入矩阵类似于[3,4,5;4,5,6],是否仍然可以使用您的代码绘制?@dinex对前3个输入进行另一种排列:XX,YY,0*ZZ
YY,0*ZZ,XX
=>0*ZZ,XX,YY:)
@Dev-iL但如果我的输入矩阵类似于[3,4,5;4,5,6],仍然可以使用您的代码进行绘制吗?