create a matrix with elements as mean values of another matrix

1 visualización (últimos 30 días)
Hello,
Please help me with the following.
Consider a 100x10 matrix, called A.
How can I get a 100x10 matrix, called B, where each row is the mean of preseding rows of A?
For matrix B,
row1 = row1 of A
row2 = mean (row1,row2) of A
...
row100= mean(row1,row2,...,row100) of A
Thank you very much.
Best,
Pavlos

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 12 de Feb. de 2014
Editada: Azzi Abdelmalek el 12 de Feb. de 2014
A=[1 2 3;4 5 6;7 8 9] % Example
[n,m]=size(A);
B=cumsum(A)./repmat((1:n)',1,m)
%or
A=[1 2 3;4 5 6;7 8 9]
B=bsxfun(@rdivide,cumsum(A),(1:size(A,1))')

Más respuestas (1)

Jos (10584)
Jos (10584) el 12 de Feb. de 2014
Just to show the many roads to Rome in MatLab's world:
A = ceil(10*rand(10,4))
B = cell2mat(arrayfun(@(x) sum(A(1:x,:),1)/x, 1:size(A,1), 'un', 0).')

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by