]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/wave/allcode/cshift3D.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
modif finale lnivs + keywords
[these_gilles.git] / THESE / codes / wave / allcode / cshift3D.m
1 function y = cshift3D(x, m, d)
2
3 % 3D Circular Shift
4 %
5 % USAGE:
6 %   y = cshift3D(x, m, d)
7 % INPUT:
8 %   x - N1 by N2 by N3 array
9 %   m - amount of shift
10 %   d - dimension of shift (d = 1,2,3)
11 % OUTPUT:
12 %   y - array x will be shifed by m samples down
13 %       along dimension d
14 %
15 % WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
16 % http://taco.poly.edu/WaveletSoftware/
17
18 [N1, N2, N3] = size(x);
19 switch d
20 case 1
21    n = 0:N1-1;
22    n = mod(n-m, N1);
23    y = x(n+1,:,:);
24 case 2
25    n = 0:N2-1;
26    n = mod(n-m, N2);
27    y = x(:,n+1,:);
28 case 3
29    n = 0:N3-1;
30    n = mod(n-m, N3);
31    y = x(:,:,n+1);
32 end
33