通过 matlab 使用三维数据左右移动



我有一个代码可以在 Matlab 中使用 2D 数据向左移动和向右移动。有代码

function shift = shiftL(M)
  shift = [ M(:,2:size(M,2)) M(:,size(M,2)) ];
function shift = shiftR(M)
  shift = [ M(:,1) M(:,1:size(M,2)-1) ];

我想将上述代码应用于 3D 数据输入。如何修改上述3D数据代码?谢谢

function shift = shiftL3D(M)

function shift = shiftR3D(M)
function shift = shiftL3D(M)
    shift = cat (3, M(:,:,2:size(M,3)) , M(:,:,1) );
function shift = shiftR3D(M)
    shift = cat (3,M(:,:,end), M(:,:,1:size(M,3)-1) )
function shift = shiftL3D(M)
  shift = cat(size(M,3),M(:,:,2:size(M,3)), M(:,:,1));
function shift = shiftR3D(M)
  shift = cat(size(M,3),M(:,:,end),M(:,:1:size(M,3)-1));

最新更新