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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| function q=sub(c)
[m,n]=size(c);
for m=1:size(:, c)
m = 1;
for k=2:n
if k==2 % corner
q(1,2)=0
elseif k==3
q(1,3)=(((2*c(1,3)-c(1,4)-c(1,11))+(2*c(1,3)-c(1,10)-c(1,12)))/2);
elseif k==4
q(1,4)=(((2*c(1,4)-c(1,3)-c(1,5))+(2*c(1,4)-c(1,11)-c(1,13)))/2); % bord
elseif k==5
q(1,5)=(((2*c(1,5)-c(1,4)-c(1,6))+(2*c(1,5)-c(1,12)-c(1,14)))/2); % bord
elseif k==6
q(1,6)=(((2*c(1,6)-c(1,5)-c(1,7))+(2*c(1,6)-c(1,13)-c(1,15)))/2); % bord
elseif k==7
q(1,7)=(((2*c(1,7)-c(1,6)-c(1,8))+(2*c(1,7)-c(1,14)-c(1,16)))/2); % bord
elseif k==8
q(1,8)=(((2*c(1,8)-c(1,7)-c(1,16))+(2*c(1,8)-c(1,15)-c(1,17)))/2);
elseif k==9 % corner
q(1,9)=0
elseif k==10
q(1,10)=(((2*c(1,10)-c(1,11)-c(1,18))+(2*c(1,10)-c(1,3)-c(1,19)))/2);
elseif k==17
q(1,17)=(((2*c(1,17)-c(1,16)-c(1,25))+(2*c(1,17)-c(1,8)-c(1,24)))/2);
elseif k==18
q(1,18)=(((2*c(1,18)-c(1,10)-c(1,26))+(2*c(1,18)-c(1,11)-c(1,27)))/2); % bord
elseif k==25
q(1,25)=(((2*c(1,25)-c(1,17)-c(1,33))+(2*c(1,25)-c(1,16)-c(1,32)))/2); % bord
elseif k==26
q(1,26)=(((2*c(1,26)-c(1,19)-c(1,35))+(2*c(1,26)-c(1,10)-c(1,42)))/2);
elseif k==33
q(1,33)=(((2*c(1,33)-c(1,25)-c(1,41))+(2*c(1,33)-c(1,24)-c(1,40)))/2); % bord
elseif k==41
q(1,41)=(((2*c(1,41)-c(1,33)-c(1,49))+(2*c(1,41)-c(1,32)-c(1,48)))/2); % bord
elseif k==42
q(1,42)=(((2*c(1,42)-c(1,35)-c(1,51))+(2*c(1,42)-c(1,27)-c(1,59)))/2);
elseif k==50
q(1,50)=(((2*c(1,50)-c(1,51)-c(1,42))+(2*c(1,50)-c(1,43)-c(1,59)))/2);
elseif k==49
q(1,49)=(((2*c(1,49)-c(1,41)-c(1,57))+(2*c(1,49)-c(1,40)-c(1,56)))/2); % bord
elseif k==57
q(1,57)=(((2*c(1,57)-c(1,56)-c(1,49))+(2*c(1,57)-c(1,48)-c(1,64)))/2);
elseif k==58 % corner
q(1,58)=0
elseif k==59
q(1,59)=(((2*c(1,59)-c(1,60)-c(1,51))+(2*c(1,59)-c(1,50)-c(1,52)))/2);
elseif k==60
q(1,60)=(((2*c(1,60)-c(1,59)-c(1,61))+(2*c(1,60)-c(1,51)-c(1,53)))/2); % bord
elseif k==61
q(1,61)=(((2*c(1,61)-c(1,60)-c(1,62))+(2*c(1,61)-c(1,52)-c(1,54)))/2); % bord
elseif k==62
q(1,62)=(((2*c(1,62)-c(1,61)-c(1,63))+(2*c(1,62)-c(1,53)-c(1,55)))/2); % bord
elseif k==63
q(1,63)=(((2*c(1,63)-c(1,62)-c(1,64))+(2*c(1,63)-c(1,54)-c(1,56)))/2); % bord
elseif k==64
q(1,64)=(((2*c(1,64)-c(1,63)-c(1,56))+(2*c(1,64)-c(1,55)-c(1,57)))/2);
elseif k==65 % corner
q(1,65)=0
else q(1,k)=(((2*c(1,k)-c(1,k-1)-c(1,k+1))+(2*c(1,k)-c(1,k-8)-c(1,k+8)))/2);
m=m+1;
end
end
end |
Partager