averaging 20 values within 1000 data points

4 views (last 30 days)
Hello all,
I have a 27x 1000 matrix and I want to avarage the numbers between 1-20, 21-40, 41-60 .......... 981-1000 in each row.
Could anyone help me about this ?
Many thanks

Accepted Answer

Image Analyst
Image Analyst on 2 Nov 2015
If you have the Image Processing Toolbox (use "ver" to check), then you can use blockproc():
myData = rand(27,1000); % Sample data
% Define the mean function to be used with blockproc.
myMeanFunction = @(block_struct) mean(block_struct.data);
% Get the means by each 1-by-20 block.
blockMeans = blockproc(myData, [1 20], myMeanFunction)

More Answers (1)

Torsten
Torsten on 2 Nov 2015
average=zeros(27,50);
for i=1:27
for j=1:50
average(i,j)=mean(A(i,(20*(j-1)+1):(20*j)));
end
end
Best wishes
Torsten.

Community Treasure Hunt

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

Start Hunting!