Extract data from columns based on a range from one column.
1 view (last 30 days)
Show older comments
Hello,
I have a set of data from some 2D motion analysis software. When processing the videos, one can apply time markers at events of interest, such as gait onset and gait termination (coded as 0 and 99, respectively). When exporting the data, the data is arranged as: time, 2nd column is irrelevant, event markers, variables of interest (each column of variables of interest can be angles, distance changes, etc., based on how you processed the video.)
I'm looking to extract data in columns 1 and 4 through 7, within the range between gait onset (0) and gait termination (99) in the marker column. There are 5 total ranges (i.e. 0 and 99) to extract from this trial. I've tried searching for some ways, but the examples don't really match up with how my data set looks.
Any ideas or leads to start will be greatly appreciated! I've attached the data set incase my description doesn't make sense.
If this problem is pretty basic, I'm willing to learn from any fundamentals you recommend. Thanks in advance.
2 Comments
Accepted Answer
Matt J
on 20 Feb 2023
A=readmatrix('data.xlsx');
starts=find(A(:,3)==0);
stops=find(A(:,3)==99);
N=numel(starts); assert(numel(stops)==N, 'Missing markers');
C=cell(N,1);
for i=1:N
C{i}=A(starts(i):stops(i),[1,4:7]);
end
C
0 Comments
More Answers (0)
See Also
Categories
Find more on Multidimensional Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!