Moving sum of 4 subsequent observatins
    3 views (last 30 days)
  
       Show older comments
    
    Joanna Przeworska
 on 24 Mar 2021
  
    
    
    
    
    Commented: Joanna Przeworska
 on 25 Mar 2021
            How can I get the moving sum of 4 subsequent observations out of variable 'var'? In specific, I would like the new variable to be constructed as follows:
(81,0970 + 85,2039 + 90,0506 + 89,0082) = ... 
(85,2039 + 90,0506 + 89,0082 + 100,3168) = ...
(90,0506 + 89,0082 + 100,3168 + 105,4897) = ...
...

0 Comments
Accepted Answer
More Answers (1)
  Mathieu NOE
      
 on 24 Mar 2021
        hello 
see example below  (run it with 4 and not 5 samples averaging) : 
% dummy data
data = rand(320,15);
buffer = 5;    % nb of samples for averaging 
% zero overlap mean averaging
[m,n] = size(data)
for ci=1:fix(length(data)/ buffer)
    start_index = 1+(ci-1)*buffer;
    stop_index = min(start_index+ buffer,length(data));
    time_index(ci) = round((start_index+stop_index)/2);  % time index expressed as sample unit (dt = 1 in this simulation)
    avg_data(ci,:) =mean(data(start_index:stop_index,:));  % 
end
figure(1),
plot(time_index,avg_data);
2 Comments
  Mathieu NOE
      
 on 25 Mar 2021
				hello Joanna
it's coming from long time ago when I rote most of the functions I still use today, now , as mentionned by Steven Lord below, you can do it in one line with movsum;
but basically that movsum function implements the code I show you
See Also
Categories
				Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!