Track changes in the rows to get a new variable in Matlab
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Maria
il 9 Ago 2014
Commentato: Azzi Abdelmalek
il 9 Ago 2014
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 Commenti
Azzi Abdelmalek
il 9 Ago 2014
Modificato: Azzi Abdelmalek
il 9 Ago 2014
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]
Risposta accettata
Azzi Abdelmalek
il 9 Ago 2014
Modificato: Azzi Abdelmalek
il 9 Ago 2014
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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with MATLAB in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!