Track changes in the rows to get a new variable in Matlab
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Maria
 am 9 Aug. 2014
  
    
    
    
    
    Kommentiert: Azzi Abdelmalek
      
      
 am 9 Aug. 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 Kommentare
  Azzi Abdelmalek
      
      
 am 9 Aug. 2014
				
      Bearbeitet: Azzi Abdelmalek
      
      
 am 9 Aug. 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]
Akzeptierte Antwort
  Azzi Abdelmalek
      
      
 am 9 Aug. 2014
        
      Bearbeitet: Azzi Abdelmalek
      
      
 am 9 Aug. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Time Series Objects finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

