Extract data from columns based on a range from one column.
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
Matt J
2023년 2월 20일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!