post:extracttimepoints.m

extractTimePoints.m

Class: Function

Description: Switches data from a track-based representation to a slice-based representation (i.e. a set of data values that are all applicable to a specified timepoint and which are all indexed in the same way as the fields of trackableData.)

Author: Oliver J. Meacock

extractTimePoints.m
function timePoints = extractTimePoints(fromMappings,toMappings,trackData,varName)
%EXTRACTTIMEPOINTS converts the input 'track' format data to a 'slice'
%representation. Useful for extracting the slice representation for values
%that can only be calculated in the track format (e.g. object velocity,
%direction of movement).
%
%   INPUTS
%   fromMappings = mapping from the original 'slice' representation of the
%   data (i.e. feature values associated with unknown tracks but defined
%   timepoints) to the 'track' representation of the data (i.e. feature
%   values associated with specific tracks). For more details, see the
%   'extractDataTrack' function.
%   toMappings = similar to fromMappings, but points from the 'track'
%   representation back to the 'slice' representation. 
%   trackData = initial 'track' format data.
%   varname = string defining the name of the field you want to convert
%   into a 'slice' representation.
%   
%   OUTPUTS
%   timePoints = data from chosen field in a 'slice' representation.
 
maxT = 1;
for i = 1:size(trackData,2)
    if max(trackData(i).times) > maxT
        maxT = max(trackData(i).times);
    end
end
 
timePoints = cell(1,maxT);
for i = 1:length(timePoints)
    timePoints{i} = nan(size(toMappings{i},1),1);
end
 
for i = 1:size(fromMappings,2)
    for j = 1:size(fromMappings{i},1)-1
        t = fromMappings{i}(j,1);
        timePoints{t}(fromMappings{i}(j,2)) = trackData(i).(varName)(j);
    end
end

Example usage:

%Create a new field in trackableData indexed like the others that contains the instantaneous velocity data for each object at each timepoint
trackableData.vmag = extractTimePoints(fromMappings,toMappings,targetTracks,'vmag');
  • post/extracttimepoints.m.txt
  • Last modified: 2022/07/18 22:56
  • by pseudomoaner