time - MATLAB: Sum rows into events per minute -


in matlab (r2015b) have cell data large time-series:

'01-jan-2017 09:01:48'    [ 5] '01-jan-2017 09:01:50'    [ 2] '01-jan-2017 09:01:51'    [12] '01-jan-2017 09:01:53'    [ 2] '01-jan-2017 09:01:56'    [ 1] '01-jan-2017 09:02:00'    [ 1] '01-jan-2017 09:02:01'    [ 2] '01-jan-2017 09:02:12'    [ 1] '01-jan-2017 09:02:17'    [ 2] '01-jan-2017 09:02:19'    [ 1] '01-jan-2017 09:02:21'    [ 4] '01-jan-2017 09:02:52'    [ 1] '01-jan-2017 09:03:00'    [ 1] '01-jan-2017 09:03:05'    [ 3] '01-jan-2017 09:03:23'    [ 2] '01-jan-2017 09:03:26'    [ 3] '01-jan-2017 09:03:36'    [ 3] '01-jan-2017 09:03:37'    [ 2] '01-jan-2017 09:03:38'    [ 1] '01-jan-2017 09:03:43'    [ 2] '01-jan-2017 09:03:49'    [ 2] '01-jan-2017 09:03:51'    [ 1] '01-jan-2017 09:03:55'    [ 1] 

however, sum rows events per minute (instead of per second), i.e.

'01-jan-2017 09:01:00'    [ 22] '01-jan-2017 09:02:00'    [ 12] '01-jan-2017 09:03:00'    [ 21] 

how can time-series?

you can use discretize combined accumarray sum values occured in same minute. first have convert first column of date strings datetime objects , perform summation of second column convert numeric array using [data{:,2}]

% convert first column datetime objects , discretize minute [inds, edges] = discretize(datetime(data(:,1)), 'minute');  % sum values same minute sums = accumarray(inds, [data{:,2}]);  % create output cell array of date strings , sums result = [cellstr(datestr(edges(1:end-1))), num2cell(sums)];  %   '01-jan-2017 09:01:00'    [22] %   '01-jan-2017 09:02:00'    [12] %   '01-jan-2017 09:03:00'    [21] 

update

so doesn't discretize works datetime objects in r2015b, following break dates components, remove seconds, determine unique groups , again use accumarray perfom summation

% break each date it's components dv = datevec(data(:,1));  % set seconds 0 minutes considered dv(:,end) = 0;  % find unique minutes [vals, ~, inds] = unique(dv, 'rows');  % sum value each unique minute sums = accumarray(inds, [data{:,2}]);  % create output cell array result = [cellstr(datestr(vals)), num2cell(sums)]; 

Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -