Create a sliding window

118 visualizaciones (últimos 30 días)
Miguel Albuquerque
Miguel Albuquerque el 2 de Jul. de 2022
Comentada: Matt J el 2 de Jul. de 2022
Hey guys, thanks in advance
I have this code, that gives me a vector, samples , that has 10 000 000 values( a lot). I wanted to divide this vector in 500 000 samples do all the processing code I have , and choose the next 500 000 samples, with a sliding window, till i finished all the samples.
So first iteration I wanted samples(1:500 000), 2nd iteration(501000: 1000000), etc...
But with a sliding window function, can I do that
Thank you

Respuesta aceptada

Image Analyst
Image Analyst el 2 de Jul. de 2022
Ten million samples is not a lot, but anyway a simple intuitive way is
for k = 1 : 500000 : length(vec) % Should be 20 iterations if vec is 10 million long.
thisWindow = vec(k : k + 499999);
% Now do something with thisWindow.
end

Más respuestas (1)

Matt J
Matt J el 2 de Jul. de 2022
Editada: Matt J el 2 de Jul. de 2022
matrix=reshape(vector,5e5,[])
This gives a matrix whose i-th window is matrix(:,i). How best to process that, though, depends on the specifics of the sliding window operation.
  2 comentarios
Miguel Albuquerque
Miguel Albuquerque el 2 de Jul. de 2022
With that Im not getting a sliding window, I needed to change the values in the matrix, is that faster of producing a for cycle instead, for example?
Matt J
Matt J el 2 de Jul. de 2022
It can be faster. For example, if you are calculating the mean over each window,
mean( reshape(vector,5e5,[]) )
will be faster than looping.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by