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],仍然可以使用您的代码进行绘制吗?