/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_legacy/nanrunmean.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/matlab_class/gcmfaces_legacy/nanrunmean.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Mon Jan 25 15:57:43 2016 UTC (9 years, 5 months ago) by gforget
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
Error occurred while calculating annotation data.
FILE REMOVED
- remove old codes.

1 %this function does a running mean along dimension dim_cur,
2 %averaging over indices [-nb_cur:nb_cur]
3 %
4 function [field_out]=nanrunmean(field_in,nb_cur,dim_cur);
5
6 if nb_cur~=0
7
8 size_cur=size(field_in);
9
10 perm1to2=[1:length(size_cur)];
11 perm1to2=[dim_cur perm1to2(find(perm1to2~=dim_cur))];
12 perm2to1=[[1:dim_cur-1]+1 1 [dim_cur+1:length(size_cur)]];
13 size_cur2=size_cur(perm1to2);
14
15 field_in2=permute(field_in,perm1to2);
16
17 field_mask2=1*~isnan(field_in2);
18 field_in2(isnan(field_in2))=0;
19
20 field_out2=zeros(size_cur2);
21 count_out2=zeros(size_cur2);
22 for tcur=-nb_cur:nb_cur
23 tmp1=[tcur:tcur-1+size_cur2(1)];
24 tmp2=find(tmp1>=1&tmp1<=size_cur2(1));
25 field_out2(tmp2,:)=field_out2(tmp2,:)+field_in2(tmp1(tmp2),:);
26 count_out2(tmp2,:)=count_out2(tmp2,:)+field_mask2(tmp1(tmp2),:);
27 end
28
29 tmp1=find(count_out2>0);
30 field_out2(tmp1)=field_out2(tmp1)./count_out2(tmp1);
31 field_out2(count_out2==0)=NaN;
32
33 field_out=permute(field_out2,perm2to1);
34
35 else
36 field_out=field_in;
37 end%if nb_cur~=0
38
39

  ViewVC Help
Powered by ViewVC 1.1.22