1 function [AEF,SHIFTMAT3d] = order(A,AE,N,L); 2 3 SHIFTMAT3d = zeros(N,L,L); 4 SHIFTMAT = zeros(N,L); 5 6 for k=0:L-1, 7 for l=0:L-1, 8 for shift=0:N-1, 9 SHIFTMAT(shift+1,l+1) = sum(abs(A(:,k+1) - circshift(AE(:,l+1),shift)).^2); 10 end; 11 end; 12 SHIFTMAT3d(:,:,k+1) = SHIFTMAT; 13 end; 14 15 AEF = zeros(N,L); 16 17 for k=0:L-1, 18 minimum = min(SHIFTMAT3d(:,:,k+1)); 19 if minimum(1) < minimum(2); 20 for l=0:N-1, 21 if SHIFTMAT3d(l+1,k+1,k+1) == min(SHIFTMAT3d(:,1,k+1)); 22 shift = l; 23 AEF(:,k+1) = circshift(AE(:,k+1),shift); 24 break; 25 end; 26 end; 27 else 28 for l=0:N-1, 29 if SHIFTMAT3d(l+1,k+1,k+1) == min(SHIFTMAT3d(:,2,k+1)); 30 shift = l; 31 AEF(:,k+1) = circshift(AE(:,k+1),shift); 32 break; 33 end; 34 end; 35 end; 36 end;