Simple logical conditional flag column

2 views (last 30 days)
I require help to develop some logic on the below data extract. I need the C2 column to toggle to '1' when C1 is '1'. Then, when C1 is '-1' the C2 column toggles to '0'. All rows in C2 between the C1 toggles (1 & -1) needs to turn to '1'.
Date C1 C2
'24-Dec-1999' 0 0
'31-Dec-1999' 1 0
'07-Jan-2000' 0 1
'14-Jan-2000' 0 1
'21-Jan-2000' 0 1
'28-Jan-2000' 0 1
'04-Feb-2000' -1 1
'11-Feb-2000' 0 0
'18-Feb-2000' 0 0
'25-Feb-2000' 0 0

Accepted Answer

david crowley
david crowley on 23 Nov 2021
Figured it out
tt.C2 = cumsum(tt.C1);

More Answers (1)

KSSV
KSSV on 23 Nov 2021
Simple, Let C1 , C2 be your two columns.
C2(C1==1)=1 ;
C2(C1==-1)=0 ;
  1 Comment
david crowley
david crowley on 23 Nov 2021
Apologies, I re-read my original question and missed out some crucial information. That only changes the first and last entry (shown below). How do I make it so that the entries in between (7-Jan-2000 to 28-Jan-2000) in C2 are also listed as '1'?
Date C1 C2
'24-Dec-1999' 0 0
'31-Dec-1999' 1 1
'07-Jan-2000' 0 0
'14-Jan-2000' 0 0
'21-Jan-2000' 0 0
'28-Jan-2000' 0 0
'04-Feb-2000' -1 0
'11-Feb-2000' 0 0
'18-Feb-2000' 0 0
'25-Feb-2000' 0 0

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!