Track changes in the rows to get a new variable in Matlab
1 回表示 (過去 30 日間)
古いコメントを表示
I have a double variable called 'change2' with 3 columns and 40000 rows. The variable is sorted by c2 and then date (c1).
c1 c2 c3
change2=[2009 1 42
2010 1 42
2011 1 559
1995 12 100
2000 12 100
2000 12 111
2003 12 100...]
I would like to get a new variable that has the first row in which a code from c2 appears for the first time and then the rows in which you observe a change in c3 for the same c2. For instance:
c1 c2 c3
change2=[2009 1 42
2011 1 559
1995 12 100
2000 12 111
2003 12 100...]
Can someone help? Thanks
2 件のコメント
Azzi Abdelmalek
2014 年 8 月 9 日
編集済み: Azzi Abdelmalek
2014 年 8 月 9 日
What if
change2=[2009 1 42
2010 1 42
2011 1 559
1995 12 100
2000 12 100
2000 12 111
2000 12 141
2000 15 124
2003 12 100]
採用された回答
Azzi Abdelmalek
2014 年 8 月 9 日
編集済み: Azzi Abdelmalek
2014 年 8 月 9 日
Edit2
change2=[2009 1 42
2010 1 42
2011 1 559
1995 12 100
2000 12 100
2000 12 111
2000 12 111
2000 12 141
2003 12 100
2003 15 124]
c2=change2(:,2);
c3=change2(:,3);
ii=[1 ;diff(c2)~=0]
jj=[1 ;diff(c3)~=0]
change2(~any([ii jj],2),:)=[]
%or in one line
change2(~any([[1 ;diff(change2(:,2))~=0 ] [1 ;diff(change2(:,3))~=0]],2),:)=[]
2 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!