Moavg.m

From Pnb
Revision as of 15:46, 5 August 2010 by 128.111.101.185 (talk) (Created page with '<pre> function mavg = moavg(flag,diff,r,c,matrix,trend,pts) %created by Erik Stassinos %3/18/2010 %function called by dspike to calculate moving average of points %passes in row …')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
function mavg = moavg(flag,diff,r,c,matrix,trend,pts)
%created by Erik Stassinos
%3/18/2010
%function called by dspike to calculate moving average of points
%passes in row and column position to do average around

cnt = 0;
sum = 0;

width_2 = (flag)/2;
width_2 = floor(width_2);
%width_2 = 2
%width_2 = floor(width_2);
start = r;
%r number of rows (row location)
%c number of columns (column location)
%matrix is up or downcast matrix
%diff is array of differences calculated
%----------------looping to find sum,cnt and trapflag-------------
r;
c;

%--------moving avg for start of matrix

if start <= width_2
    for i = start:(start+width_2) % rows in column
            if ((i==start) || (diff(i,c) > trend) || (matrix(i,c) < -1000));
            else
            sum = sum + matrix(i,c);
            cnt = cnt +1;
            end
            if cnt ==0
                cnt;
                mavg = -9.9E35;
                %sprintf('inconclusive mavg calc, trapflag set')
                %break
            else
               sum;
               mavg = sum/cnt;
            end
    end
end
clear i
%-------moving avg for end of matrix
if start >= (pts - width_2)
    for i = (start-width_2):start       
            if ((i==start) || (diff(i,c) > trend) || (matrix(i,c) < -1000));
            else
            sum = sum + matrix(i,c);
            cnt = cnt+1;
            end
            if cnt ==0
                cnt;
                 mavg = -9.9E35;
            %sprintf('inconclusive mavg calc, trapflag set')
            
            else
            mavg = sum/cnt;
            end
    end  
end
clear i

%-------moving avg for everything in between
if start > width_2 && start <= (pts - width_2)
  for i= (start - width_2):(start+width_2)
            if ((i==start) || (diff(i,c) > trend) || (matrix(i,c) < -1000));
            else
            sum = sum + matrix(i,c);
            matrixic = matrix(i,c);
            cnt = cnt+1;
            end
            if cnt ==0
            cnt;
            mavg = -9.9E35;
            %sprintf('inconclusive mavg calc, trapflag set')
            else
            mavg = sum/cnt;
            end
  end
end
clear i
%----------------------end looping--------------------------

moavg