| 1 | 
gforget | 
1.1 | 
function [MITprofSub]=MITprof_subset(MITprof,varargin); | 
| 2 | 
  | 
  | 
%   [MITprofSub]=MITprof_subset(MITprof,'depth',[50 150]); | 
| 3 | 
  | 
  | 
%       returns the subset of MITprof that has prof_depth>=50 and <150 | 
| 4 | 
  | 
  | 
%   [MITprofSub]=MITprof_subset(MITprof,'depth',[50 150],'descr',platformName); | 
| 5 | 
  | 
  | 
%       ... and prof_descr=platformName; | 
| 6 | 
  | 
  | 
 | 
| 7 | 
  | 
  | 
MITprofSub=MITprof; | 
| 8 | 
  | 
  | 
fldNames=fieldnames(MITprof); | 
| 9 | 
  | 
  | 
 | 
| 10 | 
  | 
  | 
nSub=(nargin-1)/2; | 
| 11 | 
  | 
  | 
for iSub=1:nSub; | 
| 12 | 
  | 
  | 
    eval(['prof_sub=MITprof.prof_' varargin{(iSub-1)*2+1} ';']); | 
| 13 | 
  | 
  | 
    range_sub=varargin{(iSub-1)*2+2}; | 
| 14 | 
  | 
  | 
    if strcmp('descr',varargin{(iSub-1)*2+1}); | 
| 15 | 
  | 
  | 
        KK=find(strcmp(prof_sub,range_sub)); | 
| 16 | 
  | 
  | 
    elseif strcmp('depth',varargin{(iSub-1)*2+1}); | 
| 17 | 
  | 
  | 
        KK=find(prof_sub>=range_sub(1)&prof_sub<range_sub(2)); | 
| 18 | 
  | 
  | 
    else; | 
| 19 | 
  | 
  | 
        KK=find(prof_sub>=range_sub(1)&prof_sub<range_sub(2)); | 
| 20 | 
  | 
  | 
    end; | 
| 21 | 
  | 
  | 
    %  [varargin{(iSub-1)*2+1} ' -- ' num2str(length(KK))] | 
| 22 | 
  | 
  | 
    for iFld=1:length(fldNames); | 
| 23 | 
  | 
  | 
        eval(['tmp1=MITprofSub.' fldNames{iFld} ';']); | 
| 24 | 
  | 
  | 
        if strcmp('depth',varargin{(iSub-1)*2+1}) & strcmp(fldNames{iFld},'prof_depth'); | 
| 25 | 
  | 
  | 
            tmp1=tmp1(KK); | 
| 26 | 
  | 
  | 
        elseif strcmp('depth',varargin{(iSub-1)*2+1}); | 
| 27 | 
  | 
  | 
            if size(tmp1,2)==length(MITprof.prof_depth); tmp1=tmp1(:,KK); end; | 
| 28 | 
  | 
  | 
        else; | 
| 29 | 
  | 
  | 
            if size(tmp1,1)==size(prof_sub,1); tmp1=tmp1(KK,:); end; | 
| 30 | 
  | 
  | 
        end; | 
| 31 | 
  | 
  | 
        eval(['MITprofSub.' fldNames{iFld} '=tmp1;']); | 
| 32 | 
  | 
  | 
    end; | 
| 33 | 
  | 
  | 
     | 
| 34 | 
  | 
  | 
end; | 
| 35 | 
  | 
  | 
 | 
| 36 | 
  | 
  | 
%add a couple things: | 
| 37 | 
  | 
  | 
%-------------------- | 
| 38 | 
  | 
  | 
MITprofSub.np=length(MITprofSub.prof_lon); | 
| 39 | 
  | 
  | 
MITprofSub.nr=length(MITprofSub.prof_depth); | 
| 40 | 
  | 
  | 
 |