Track changes in the rows to get a new variable in Matlab
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Maria
 el 9 de Ag. de 2014
  
    
    
    
    
    Comentada: Azzi Abdelmalek
      
      
 el 9 de Ag. de 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 comentarios
  Azzi Abdelmalek
      
      
 el 9 de Ag. de 2014
				
      Editada: Azzi Abdelmalek
      
      
 el 9 de Ag. de 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]
Respuesta aceptada
  Azzi Abdelmalek
      
      
 el 9 de Ag. de 2014
        
      Editada: Azzi Abdelmalek
      
      
 el 9 de Ag. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Time Series Objects en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!