Sum over a dimension

16 vues (au cours des 30 derniers jours)
JvdS
JvdS le 5 Août 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

Réponse acceptée

madhan ravi
madhan ravi le 5 Août 2019
B = cumsum(A,3)

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by