我的问题源于串联。我有一个定义为 Z(行)x X(列)x Y 的 3D 矩阵。我可以很好地垂直到 Z 维度。我可以 horzcat 可以很好地进入 X 维度。但不是 Y 轴,因为 horzcat 只添加到第二维(根据帮助文件)。
强调一下,我并不是要扩展原始矩阵。
- 原始 3D 矩阵 (MGeol) 有一个地质区域细胞所在的值。
- 我通过在 Z、X 和 Y 方向减去稍微小一点的 MGeol 矩阵(偏移 1)来计算区域变化的位置。结果是非零值位于区域之间的接触处。
- 要将所有这些结果恢复到与原始矩阵相同大小的矩阵中,以便我可以将它们与坐标向量对齐。
所以我在偏移维度上添加零层并连接。它适用于行(Z)和列(X),但我如何将 Z 操纵到 horzcat 并保持秩序?
Zcontact = MGeol(1:nz-1,:,:) - MGeol(2:nz,:,:);
Zcontacts = vertcat(Zcontact, zeros(1,nx,ny)) - vertcat(zeros(1,nx,ny), Zcontact);
Xcontact = MGeol(:,1:nx-1,:) - MGeol(:,2:nx,:);
Xcontacts = horzcat(Xcontact, zeros(nz,1,ny)) - horzcat(zeros(nz,1,ny), Xcontact);
Ycontact = MGeol(:,:,1:ny-1) - MGeol(:,:,2:ny);
Ycontacts = horzcat(Ycontact, zeros(nz,nx,1)) - horzcat(zeros(nz,nx,1), Ycontact); %<- causes the error
Error using horzcat
CAT arguments dimensions are not consistent.