Averaging setions of a matix

1 visualizzazione (ultimi 30 giorni)
AUWAL ABUBAKAR
AUWAL ABUBAKAR il 27 Nov 2019
Risposto: Andrei Bobrov il 27 Nov 2019
Good day,
Could someone please help me on how to average row one to nth row of a matrix and build another matrix with the out put.
For instance, for a matrix 'A' of 20 x 5, I would like to build another matrix of which its first row is an average of the first two rows of A, the 2nd row is the average of first three rows of A and the third row is the average of the 1st four rows of A, until the last row of matrix A.
I tried the loop shown below but I got an error that dimension of the right and left side are not the same.
for f=1:1:n
k=mean(B(1:n,:))
f
Avg(:,f)=k
end
Thanks in advance

Risposta accettata

dpb
dpb il 27 Nov 2019
mnA=cell2mat(arrayfun(@(n)mean(A(1:n,:)),[2:size(A,1)].','uni',0));
  1 Commento
AUWAL ABUBAKAR
AUWAL ABUBAKAR il 27 Nov 2019
This is awsome!
It works fine.
Thanks for your help

Accedi per commentare.

Più risposte (1)

Andrei Bobrov
Andrei Bobrov il 27 Nov 2019
out = cumsum(A)./(1:size(A,1))';
mnA = out(2:end,:);

Categorie

Scopri di più su Loops and Conditional Statements 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