ImaGIN_shift.m
2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function J = ImaGIN_shift(J,pas,dim)
% -=============================================================================
% This function is part of the ImaGIN software:
% https://f-tract.eu/
%
% This software is distributed under the terms of the GNU General Public License
% as published by the Free Software Foundation. Further details on the GPLv3
% license can be found at http://www.gnu.org/copyleft/gpl.html.
%
% FOR RESEARCH PURPOSES ONLY. THE SOFTWARE IS PROVIDED "AS IS," AND THE AUTHORS
% DO NOT ASSUME ANY LIABILITY OR RESPONSIBILITY FOR ITS USE IN ANY CONTEXT.
%
% Copyright (c) 2000-2018 Inserm U1216
% =============================================================================-
%
% Authors: Olivier David
j = J;
if min(size(J)) == 1
if pas > 0
J(1:pas) = j(length(J)-pas+1:length(J));
J(pas+1:length(J)) = j(1:length(J)-pas);
elseif pas < 0
J(1:length(J)+pas) = j(-pas+1:length(J));
J(length(J)+pas+1:length(J)) = j(1:-pas);
end
elseif nargin == 3
if ndims(J) == 2
if dim == 1
if pas > 0
J(1:pas,:) = j(length(J)-pas+1:length(J),:);
J(pas+1:length(J),:) = j(1:length(J)-pas,:);
elseif pas < 0
J(1:length(J)+pas,:) = j(-pas+1:length(J),:);
J(length(J)+pas+1:length(J),:) = j(1:-pas,:);
end
elseif dim == 2
if pas > 0
J(:,1:pas) = j(:,length(J)-pas+1:length(J));
J(:,pas+1:length(J)) = j(:,1:length(J)-pas);
elseif pas < 0
J(:,1:length(J)+pas) = j(:,-pas+1:length(J));
J(:,length(J)+pas+1:length(J)) = j(:,1:-pas);
end
end
elseif ndims(J) == 3
if dim == 1
if pas > 0
J(1:pas,:,:) = j(length(J)-pas+1:length(J),:,:);
J(pas+1:length(J),:,:) = j(1:length(J)-pas,:,:);
elseif pas < 0
J(1:length(J)+pas,:,:) = j(-pas+1:length(J),:,:);
J(length(J)+pas+1:length(J),:,:) = j(1:-pas,:,:);
end
elseif dim == 2
if pas > 0
J(:,1:pas,:) = j(:,length(J)-pas+1:length(J),:);
J(:,pas+1:length(J),:) = j(:,1:length(J)-pas,:);
elseif pas < 0
J(:,1:length(J)+pas,:) = j(:,-pas+1:length(J),:);
J(:,length(J)+pas+1:length(J),:) = j(:,1:-pas,:);
end
elseif dim == 3
if pas > 0
J(:,:,1:pas) = j(:,:,length(J)-pas+1:length(J));
J(:,:,pas+1:length(J)) = j(:,:,1:length(J)-pas);
elseif pas < 0
J(:,:,1:length(J)+pas) = j(:,:,-pas+1:length(J));
J(:,:,length(J)+pas+1:length(J)) = j(:,:,1:-pas);
end
end
end
end