sliding window and keeping as a vector
Mostrar comentarios más antiguos
I have D-1 data of points 1-500 I would like to slide this data to have 20points in each window and be as a vector [123...20, 21...40 ect] I was trying to do it but it is showing a matrix (20x25) I am new to matlab anyone could help me please?
Respuestas (1)
Image Analyst
el 9 de Sept. de 2014
How about
array2D = reshape(data, [20,25]);
Is that what you meant and want?
9 comentarios
Nessa
el 9 de Sept. de 2014
Sean de Wolski
el 9 de Sept. de 2014
So:
median(array2D,2)
Start with something simple, data = 1:6 , and build from there. reshape and transpose (.') will be your friends
Image Analyst
el 9 de Sept. de 2014
Nessa, if you have the Image Processing Toolbox, look at blockproc() which will let you apply some function/operation to a vector or image in "jumps" of 20. I.e. the window slides along in jumps of 20 pixels (or whatever you specify) rather than one element at a time. Though you could also process array2D row by row.
Nessa
el 9 de Sept. de 2014
Editada: Image Analyst
el 9 de Sept. de 2014
Image Analyst
el 9 de Sept. de 2014
Well you said you were starting with a vector, so what's the problem? It's already a vector. What operation do you want to do? Moving average, moving mean, some custom linear filter, some highly customized set of operations you've encapsulated into a custom function? What?
Image Analyst
el 9 de Sept. de 2014
Nessa's "Answer" moved here:
calculate an average from each 20 points and further 20 points up to 500
Image Analyst
el 9 de Sept. de 2014
Try this:
data = randi(9, 1, 500); % Sample data
array2D = reshape(data, [20, 25]);
means = mean(array2D, 1)
Nessa
el 9 de Sept. de 2014
Image Analyst
el 9 de Sept. de 2014
You're welcome. If we're done, then can you please mark the answer as "Accepted"? Thanks.
Categorías
Más información sobre Resizing and Reshaping Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!