MATLAB Answers

Averaging setions of a matix

3 views (last 30 days)
AUWAL ABUBAKAR
AUWAL ABUBAKAR on 27 Nov 2019
Answered: Andrei Bobrov on 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

  0 Comments

Sign in to comment.

Accepted Answer

dpb
dpb on 27 Nov 2019
mnA=cell2mat(arrayfun(@(n)mean(A(1:n,:)),[2:size(A,1)].','uni',0));

  1 Comment

AUWAL ABUBAKAR
AUWAL ABUBAKAR on 27 Nov 2019
This is awsome!
It works fine.
Thanks for your help

Sign in to comment.

More Answers (1)

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

  0 Comments

Sign in to comment.

Sign in to answer this question.