Sum over a dimension

15 views (last 30 days)
JvdS
JvdS on 5 Aug 2019
Answered: madhan ravi on 5 Aug 2019
Hi,
I try to sum over the third dimension of a matrix A, say A = ceil(5*rand(4,4,3)).
The third dimension equals variation in time. For t= 0 I want to have A(:,:,1); for t= 1 I want to have A(:,:,1) + A(:,:,2); for t=3 I want to have A(:,:,1) + A(:,:,2) + A(:,:,3).
The code below works, however, I want to do it without for-loops. Can someone help me?
[nr, nc, nd]= size(A)
for i=1:nd
for ii= 1:nr
for jj=1:nc
B(ii,jj,i) = sum(reshape(A(ii,jj,[1:i]),i,1)));
end
end
end

Accepted Answer

madhan ravi
madhan ravi on 5 Aug 2019
B = cumsum(A,3)

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!