Public feed
#887949
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;