为什么我在MATLAB切片图中丢失了一行和一列?

时间:2015-05-27 19:36:11

标签: matlab matlab-figure

我正在尝试在MATLAB中绘制3D体积。我正在使用切片命令。

a(:,:,1)=[1,2; 3,4];
a(:,:,2)=[5,6; 9,8];
figure;
slice (a,0,0,1);
hold on
slice (a,0,0,2);

我得到的数字只有一个方格(像素)。我期待4个方格。我如何绘制这个?我究竟做错了什么?

enter image description here

1 个答案:

答案 0 :(得分:2)

documentation的相关部分:

  

切片(V,sx,sy,sz)沿着向量sx,sy和sz中的点处的体积V中的x,y,z方向绘制切片。 V是一个m×n-by-p的体积阵列,包含默认位置X = 1:n,Y = 1:m,Z = 1:p的数据值。向量sx,sy和sz中的每个元素定义x轴,y轴或z轴方向的切片平面。

所以,你的命令slice (a,0,0,1);要求Matlab生成三个立方体切片[1,2]×[1,2]×[1,2](根据您的a数组的值,由以下平面

  • x = 0平面(显示为空方块,因为它在多维数据集之外)
  • y = 0 plane(同一故事)
  • z = 1平面(深蓝色方块)。

您可以使用slice(a,[],[],1)避免无关的x = 0和y = 0切片。此外,

  • slice(a,[],[],[1,2])会给你顶部和底部
  • slice(a,[],[1,2],[])会给出两个垂直边
  • slice(a,[1,2],[],[])会给出另外两个垂直方面

或者您可以使用slice(a,[1,2],[1,2],[1,2])一次获得所有六个。如果您不想要,例如,顶部和底部切片,则slice(a,[1,2],[1,2],[])

请注意a的条目不是坐标,它们被理解为三个变量函数的值,并用颜色表示。