Trimming rows based on values in one column
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
Suppose I have two columns in a matrix that look like this:
5 0
5 0
5 1
5 1
5 1
6 1
7 0
8 0
9 0
9 0
1 1
3 1
2 1
4 1
44 1
5 0
4 1
3 1
6 0
I'd like to isolate the regions that are bounded by 0s. My second column is a switch (0 off and 1 being on). And I'd only like to look at the data where the switch is on. However, I can't just delete all rows with 0 in them because I need to know the start time and end time of each instance of the switch being on. Thus, I need a zero to be at the beginning and end of each instance. Another column in this matrix is the time stamp which I will be using in another step.
Would appreciate any help or being pointed in the right direction.
Thanks in advance.
댓글 수: 1
dpb
2014년 2월 10일
Use diff() on the second column to find the +/-1 locations. I'll leave you to imagine what that tells you... :)
답변 (1개)
Azzi Abdelmalek
2014년 2월 10일
A=[5 0
5 0
5 1
5 1
5 1
6 1
7 0
8 0
9 0
9 0
1 1
3 1
2 1
4 1
44 1
5 0
4 1
3 1
6 0]
c2=A(:,2)'
idx1=strfind(c2,[0 1])
idx2=strfind(c2,[1 0])
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!