function [SumM] = average(H,l)    %H er en (m x n) vilkålig matrice, hvor m er større end n.
										%l=1 giver alle 180 elemter, l=0 giver deførste 20 i omvendt rækkeflg
 [m,n] = size(H);
 z = zeros(n,1);
 
 for (j = 1:n)                   % En hjælpe-søjle vektor   
      z(j) = n+1-j;   
 end
 
 B = H(:,z);                    % Her vendes H matricens søjler, søjle (1 med n), (2 med n-1) osv.   
 DiagM = zeros(m,n);
 
 for (j=(n-1):-1:(n-m))                % K er en (m x n)-matrice, der tager B's diagonal 
    if ((n-j) <= n)                    % elementer fra den n'te søjle i B og ned til (m-n)    
                                       % Det har vist sig, at Matlab's diag-funktionen tæller 1.ste 
       DiagM(n-j,1:(n-j)) = diag(B,j)';    % søjle som nulte søjle. Heraf ummidelbart indexet (n-1) i 
    else                               % for-løkken! 
       DiagM(n-j,1:n) = diag(B,j)';        
    end
 end
 
 SumM2 = zeros(1,m);
  for (j = 1:m) 
     SumM(j) = sum(DiagM(j,1:end));   % Her summeres DiagM's række elementer 
     SumM2(1,j) = SumM(j);             
  end
  
  Mid1SumM2 = SumM2(1:n)./[1:n];   % Her divideres SuM2's elementer med 1,2,...,n       
 
if l == 0
    SumM = zeros(1,(n-1));
   for i=1:(n-1)
 		SumM(1,n-i)=Mid1SumM2(i);
   end
else       
   SumM = zeros(1,m);
   Mid2SumM2 = SumM2(n+1:m)/n;
    SumM = [Mid1SumM2 Mid2SumM2];        % sammensætning
end     


      
 