| 1 | gforget | 1.1 | function r = nanmean(p,varargin) | 
| 2 | gforget | 1.3 | % NANMEAN(p,varargin) | 
| 3 |  |  | % | 
| 4 | gforget | 1.2 | %overloaded gcmfaces nanmean function : | 
| 5 |  |  | %  1) if single gcmfaces argument, then returns the global nanmean over all faces | 
| 6 |  |  | %  2) if more than one argument, then simply calls double nanmean function for | 
| 7 |  |  | %     each face data, passing over the other arguments | 
| 8 | gforget | 1.1 |  | 
| 9 |  |  | if nargin==1; | 
| 10 |  |  | tmp1=[]; | 
| 11 |  |  | for iFace=1:p.nFaces; | 
| 12 |  |  | iF=num2str(iFace); | 
| 13 |  |  | eval(['tmp1=[tmp1;p.f' iF '(:)];']); | 
| 14 |  |  | end; | 
| 15 |  |  | r=nanmean(tmp1); | 
| 16 |  |  | return; | 
| 17 |  |  | end; | 
| 18 |  |  |  | 
| 19 | gforget | 1.3 | if varargin{1}>0; | 
| 20 |  |  | r=p; | 
| 21 |  |  | for iFace=1:r.nFaces; | 
| 22 |  |  | iF=num2str(iFace); | 
| 23 |  |  | eval(['r.f' iF '=nanmean(p.f' iF ',varargin{:});']); | 
| 24 |  |  | end; | 
| 25 |  |  | else; | 
| 26 |  |  | tmp1=convert2gcmfaces(p); | 
| 27 |  |  | [n1,n2,n3,n4]=size(tmp1); | 
| 28 |  |  | tmp1=reshape(tmp1,n1*n2,n3,n4); | 
| 29 |  |  | r=nanmean(tmp1,1); | 
| 30 | gforget | 1.1 | end; | 
| 31 |  |  |  |