Track changes in the rows to get a new variable in Matlab
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Maria
 le 9 Août 2014
  
    
    
    
    
    Commenté : Azzi Abdelmalek
      
      
 le 9 Août 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 commentaires
  Azzi Abdelmalek
      
      
 le 9 Août 2014
				
      Modifié(e) : Azzi Abdelmalek
      
      
 le 9 Août 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]
Réponse acceptée
  Azzi Abdelmalek
      
      
 le 9 Août 2014
        
      Modifié(e) : Azzi Abdelmalek
      
      
 le 9 Août 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 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Time Series Objects dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!