array of mean from array

1 view (last 30 days)
Rodrigo Araya
Rodrigo Araya on 11 Oct 2019
Edited: KALYAN ACHARJYA on 11 Oct 2019
hi
I have a 400x400 array, and I need a new array for example a 10:10 in which the first value is the average of the first (0:40,0:40) values of the original array ... the 2:1 value is an average of the values from (41: 80,0:40) and so on until the las 10:10 values that will be the average (360:400,360:400)
I hope is clear
I can do one by one but i try to put this in a for
any sugestion please

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 11 Oct 2019
a=rand(400);
b=mat2cell(a,40*ones(10,1),40*ones(1,10));
c=cellfun(@mean,b,'uni',false);
d=cellfun(@mean,c,'uni',false);
e=cell2mat(d)

More Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 11 Oct 2019
Edited: KALYAN ACHARJYA on 11 Oct 2019
One line with blockproc
data=magic(400);
result_mean=blockproc(data, [40 40], @(x) mean(x.data(:)));

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!