Simple logical conditional flag column

1 回表示 (過去 30 日間)
david crowley
david crowley 2021 年 11 月 23 日
回答済み: david crowley 2021 年 11 月 23 日
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

採用された回答

david crowley
david crowley 2021 年 11 月 23 日
Figured it out
tt.C2 = cumsum(tt.C1);

その他の回答 (1 件)

KSSV
KSSV 2021 年 11 月 23 日
Simple, Let C1 , C2 be your two columns.
C2(C1==1)=1 ;
C2(C1==-1)=0 ;
  1 件のコメント
david crowley
david crowley 2021 年 11 月 23 日
編集済み: david crowley 2021 年 11 月 23 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by