sliding window and keeping as a vector
이전 댓글 표시
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?
답변 (1개)
Image Analyst
2014년 9월 9일
How about
array2D = reshape(data, [20,25]);
Is that what you meant and want?
댓글 수: 9
Nessa
2014년 9월 9일
Sean de Wolski
2014년 9월 9일
So:
median(array2D,2)
Start with something simple, data = 1:6 , and build from there. reshape and transpose (.') will be your friends
Image Analyst
2014년 9월 9일
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
2014년 9월 9일
편집: Image Analyst
2014년 9월 9일
Image Analyst
2014년 9월 9일
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
2014년 9월 9일
Nessa's "Answer" moved here:
calculate an average from each 20 points and further 20 points up to 500
Image Analyst
2014년 9월 9일
Try this:
data = randi(9, 1, 500); % Sample data
array2D = reshape(data, [20, 25]);
means = mean(array2D, 1)
Nessa
2014년 9월 9일
Image Analyst
2014년 9월 9일
You're welcome. If we're done, then can you please mark the answer as "Accepted"? Thanks.
카테고리
도움말 센터 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!