create a matrix with elements as mean values of another matrix

1 次查看(过去 30 天)
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

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2014-2-12
编辑:Azzi Abdelmalek 2014-2-12
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))')

更多回答(1 个)

Jos (10584)
Jos (10584) 2014-2-12
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).')

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by