# In row mean of consecutive columns up to end

2 visualizzazioni (ultimi 30 giorni)
Safi ullah il 28 Feb 2017
Commentato: Roger Stafford il 28 Feb 2017
Hello everyboby, I have a matrix A=1×100. Now I want to find the mean of row for each consecutive five columns up to last. that is Answer=mean(1-5 columns), mean(6-10 columns), mean(11-15columns),…. mean(96-100 columns). As a result I want to get one row vector containing 20 columns. I tried as mean(A(1,1:5:100)) but not get the desired result.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (2)

Akira Agata il 28 Feb 2017
Modificato: Akira Agata il 28 Feb 2017
I think splitapply function will help. Please try the following code.
A = rand(1,100); % Example
group = reshape(repmat([1:20],5,1),1,100);
result = splitapply(@mean,A,group);
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Image Analyst il 28 Feb 2017
Cool! I was going to suggest blockproc() as an alternative, but that's only in the Image Processing Toolbox. It looks like they've put this general purpose function, splitapply(), into base MATLAB since version R2015b. (I guess I should read or remember the release notes.) It could even be applied to do any arbitrary function on arbitrary-sized arrays using any group criteria that you want.

Accedi per commentare.

Roger Stafford il 28 Feb 2017
Modificato: Image Analyst il 28 Feb 2017
A = rand(1,100);
M = mean(reshape(A,5,[]),1);
##### 2 CommentiMostra NessunoNascondi Nessuno
Safi ullah il 28 Feb 2017
Modificato: Image Analyst il 28 Feb 2017
In case of A=54×100, how can we modify the same code? For 1 row it works well. Thanks!
Roger Stafford il 28 Feb 2017
M = squeeze(mean(reshape(A,54,5,[]),2));

Accedi per commentare.

### Categorie

Scopri di più su Dialog Boxes in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by