Trimming rows based on values in one column

조회 수: 1 (최근 30일)
Muneer
Muneer 2014년 2월 10일
댓글: dpb 2014년 2월 10일
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
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
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])

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by