Skip to content
Snippets Groups Projects
Select Git revision
  • 7326bfbd003313dcf54eeec5d987ddf51e420511
  • main default
2 results

getStats.m

Blame
  • getStats.m 1.53 KiB
    
    function tblVelo = getStats(dxx, pData, tblMD)
    if ~exist('idxDel','var')
        idxDel = [];
    end
    tblVelo = table();
    idxUnused = 1:height(pData);
    for i = 1:length(dxx)
        for j = 1:size(dxx{i},1)
            m = dxx{i}(j,2);
            n = dxx{i}(j,3);
            % m and n are indices into pData
            % check first if either is disqualified
            if pData.disqualified(m) || pData.disqualified(n)
                continue
            end
           
           if m~=n && pData.dx(m) == pData.dx(n) % same date pairs
                continue
            end
    %         
            
            dmd = pData.md(n) - pData.md(m);
            nt = table();
            nt.subjectID = pData.subjectID(m);
            idxm = find(dxx{i}(:,2)==m & dxx{i}(:,3) == m);
            idxn = find(dxx{i}(:,2)==n & dxx{i}(:,3) == n);
            nt.X = [dxx{i}(idxm,1),dxx{i}(idxn,1),dxx{i}(j,1)];
            nt.velocity = (dxx{i}(j,1));        
            nt.md = min(pData.md(n),pData.md(m));
            nt.dmd = abs(dmd);
            nt.mn = [m,n];                
            nt.ddx = pData.dx(n) - pData.dx(m);
            % find sex
            idx = find(tblMD.subjectID == pData.subjectID(m),1,'first');
            nt.sex = tblMD.gender_full(idx);
            if nt.dmd > 4
                 continue
            end
            if years(nt.ddx)>1
                continue
            end
    %         if nt.velocity > 0.9 && nt.velocity < 0.975
    %             continue
    %         end
            if m ~= n
                idxUnused = setdiff(idxUnused,m);
                idxUnused = setdiff(idxUnused,n);
            end
            tblVelo = [tblVelo;nt];
        end
    end
    
    % tblVelo = trimSelfSimilar(tblVelo);
    4;