2016-05-17 104 views
0

在MATLAB中,如果我们假设一个立方体的出发点是上左上角,如何从MATLAB中提取具有中心点和X,Y,Z长度的3D体积中的立方体?

3D_vol(Start_x : Start_x + SizeX-1, Start_y : Start_y + SizeY-1, Start_z : Start_z + SizeZ-1); 

得到其各自的X,Y,Z的起点和大小的立方体。现在,如果起点是立方体的中心,我该如何获得立方体?

我尝试了以下,但是当X/Y/Z的大小是偶数时它是不正确的。

3D_vol(start_x - (SizeX/2) - 1 : Start_x + (SizeX/2) - 1, ...... 

3D_vol是3d矩阵。

回答

1

我假设起始点是整数。
如果SizeX很奇怪,则更容易。您必须在中心点和(SizeX-1)/2每侧:

start_x + (-(SizeX-1)/2:(SizeX-1)/2) 

这会给你一个总的1+2*(SizeX-1)/2 = SizeX点。
如果SizeX是偶数,您的start_x实际上并不是中心,而是最接近它的点之一。你应该决定它的左边还是右边。我们假设离开。然后,在左侧需要start_x点和SizeX/2-1更多点。剩下的就在右边:

start_x + (-(SizeX/2-1):SizeX/2) 

那会给你总共1+(SizeX-1)/2-1+SizeX/2 = SizeX点。

相关问题