【问题标题】:plot diagonal slices of a 3D matrix with imagesc()使用 imagesc() 绘制 3D 矩阵的对角线切片
【发布时间】:2020-01-29 00:58:53
【问题描述】:

我是 Matlab 新手,我真的需要帮助解决以下问题:

我有一个 255 x 255 x 255 的矩阵,我想用 imagesc() 绘制它的二维切片。

我知道,为了绘制平行于 x、y、z 平面的切片,我可以使用矩阵(:,:,i)之类的东西指定切片,但是如果我想绘制 x = y 切片,还是一般的任何 x = n*y 切片?

我的想法是将矩阵插值到这些平面上,然后提取切片,但我有点不知道怎么做。

特别是对于 x = y 切片,我一直在尝试通过对每个 z 切片使用 diag() 命令并为 i=1 设置 new_matrix = matrix(i,i,:) 来构建二维矩阵: 255,但这似乎不起作用。

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    因为 Matlab 给了你slice

    [X,Y,Z] = meshgrid(-5:0.2:5);
    V = X.*exp(-X.^2-Y.^2-Z.^2);
    
    [xsurf,ysurf] = meshgrid(-2:0.2:2);
    zsurf = xsurf/2+ysurf/2;
    slice(X,Y,Z,V,xsurf,ysurf,zsurf)
    

    您可以使用相机view 角度来模拟imagesc 的感觉,例如在我编写的代码之后尝试view(0, 90)...

    顺便说一句...如果您坚持按您想要的方式进行剪辑和使用 imagesc,这就是我给出的示例:

    for n=1:size(X,1)
        D(:,n)=squeeze(V(n,n,:));
    end
    imagesc(D)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2021-11-12
      • 2015-10-26
      相关资源
      最近更新 更多