How to create a sliding window function over column vector M
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Thashen  Naidoo
 il 24 Nov 2019
  
    
    
    
    
    Modificato: Jeff
 il 8 Feb 2024
            If vector M is a column of 30000 points of temperature, How do I create a sliding window function that goes from 1 to 500, 2 to 501, 3 to 502 ...till the end. So the window length is 500.
0 Commenti
Risposta accettata
  Thiago Henrique Gomes Lobato
      
 il 24 Nov 2019
        You can easily implement a loop for this
A = [1,2,3,4,5,6]'; % Easy vector to verify output
fun = @(x)mean(x); % Your function
WindowLength = 2;
Output = zeros(length(A)-WindowLength,1);
for idx = 1:length(A)-WindowLength
    Block = A(idx:idx+WindowLength);
    Output(idx) = fun(Block);
end
Output
Output =
     2
     3
     4
     5
Or, if you want to have it in many places, just create a function for it:
     function output = SlideFun(x,WindowLength,fun)
         Output = zeros(length(x)-WindowLength,1);
        for idx = 1:length(x)-WindowLength
            Block = x(idx:idx+WindowLength);
            Output(idx) = fun(Block);
        end
     end
1 Commento
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


