sum all monthly values for every year
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Colby
 el 2 de Feb. de 2015
  
    
    
    
    
    Comentada: Scott Miller
 el 8 de Oct. de 2015
            I have a large matrix A. In column 1, I have serial dates. They are in half month time steps. (ex ...10/01/1984, 10/15/1984, 11/01/1984,.... or as serial dates ...724916, 724930, 724947, ...) Then in the second column, are values for each date. I would like a new matrix that has the sum of the values in column b, for every year in column a. For the life of me, I can't figure out a simple way to execute this. Does anyone have a simple answer? Thanks a lot. I appreciate your time!
0 comentarios
Respuesta aceptada
  Guillaume
      
      
 el 2 de Feb. de 2015
        Easy:
dv = datevec(A(:, 1));                   %convert to datevec to easily separate years
[years, ~, subs] = unique(dv(:, 1));     %get unique years and location
yearsum = accumarray(subs, A(:, 2));     %accumarray with most default values does sums
2 comentarios
  Scott Miller
 el 8 de Oct. de 2015
				Thanks, Guillaume! Adding an @max function handle to the accumarray function in your code sample is a slick way to single out peak annual flows from a stream flow or runoff time series.
pkQ = accumarray(subs, tsQ(:, 2),[],@max);
Más respuestas (0)
Ver también
Categorías
				Más información sobre Dates and Time en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

